【鸿蒙南向开发】ohos.net.http请求HttpResponse header中set-ccokie值被转成array类型


📚往期笔录记录🔖:

🔖鸿蒙(HarmonyOS)北向开发知识点记录~
🔖鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~
🔖鸿蒙应用开发与鸿蒙系统开发哪个更有前景?
🔖嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~
🔖对于大前端开发来说,转鸿蒙开发究竟是福还是祸?
🔖鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?
🔖记录一场鸿蒙开发岗位面试经历~
🔖持续更新中……


背景

HarmonyOS Next版中国移动app在开发接入小程序时,发现有一个小程序中的登录信息校验的网络请求一直在报错。排查发现这个接口的入参不正确,通过反编译小程序的源码发现该接口的入参是依赖另一个接口响应头中set-cookie字段的值。打断点对比HarmonyOS Next系统和安卓系统的set-cookie字段值,HarmonyOS Next上值是array类型,安卓上是string类型。

而且抓包看到的服务的响应值也只是一个单纯的文本。

所以,不得不怀疑是鸿蒙系统的网络库把HttpResponse的header中set-cookie值封装成了array类型。

分析源码

http请求是调用OpenHarmony的ohos.net.http的api,所以找到communication_netstack源码库。

HttpResponse的header中除了set-cookie其它字段的值都没问题,所以直接在代码库中搜索“set-cookie”。从定义的常量名就能看出来是和处理http响应有关的。

##frameworks\js\napi\http\constant\src\constant.cpp

const char *const HttpConstant::RESPONSE_KEY_SET_COOKIE = "set-cookie";

下面我们就梳理下响应头的处理过程。

##frameworks\js\napi\http\http_exec\src\http_exec.cpp

#define NETSTACK_CURL_EASY_SET_OPTION(handle, opt, data, asyncContext)                                   \
    do {                                                                                                 \
        CURLcode result = curl_ea
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值