HarmonyOS鸿蒙Next中请求路径问题以及调试方案
HarmonyOS鸿蒙Next中请求路径问题以及调试方案
咨询描述:
在做请求的时候,将参数拼接到了url中,日志如下:
----------request info start------------
I 请求 https://host/access/init/sendCode?token=c6tAGnrFpOHTvNSLerGIr7ACQgcTJhrBAd9qGh+33lA= - 方式POST
I header:{“content-type”:“application/json; charset=uft-8”,“appType”:“1”,“version”:“6.0.0”,“encrypt”:“0”,“telephone”:“NA”,“phoneNo”:“NA”,“phoneInfo”:“HarmonyOS-NEXT”,“realPhoneNo”:“NA”,“imei”:"",“imsi”:"",“mac”:“NA”,“uuid”:""}
I body:{}
I ----------request info end ------------
I ---------response info start -----------
I 返回状态 200
I 返回数据 {“returnCode”:"-7",“returnInfo”:"",“dataSet”:[],“success”:false,“size”:0}
I ---------response info end -----------
服务器返回状态码为-7,为token解密失败的意思,通过查看服务器日志,发现服务器接收到的实际请求路径为 https://host/access/init/sendCode?token=c6tAGnrFpOHTvNSLerGIr7ACQgcTJhrBAd9qGh+33lA=
即url的地址在传送到服务器的过程中,token中的’+‘被替换成了’ '。
问题:
- 首先这个地址被替换的问题是否被net库处理了。
- 目前看wifi没办法设置代理,请问有没有类似于抓包的方案来排查请求过程中遇到的问题。
更多关于HarmonyOS鸿蒙Next中请求路径问题以及调试方案的实战教程也可以访问 https://www.itying.com/category-93-b0.html
当url请求参数带有"+"时,经过服务器时会转换成空格,这样会导致后台获取到无效的参数,使得路径解析错误。推荐解决方法如下:
- 将"+“替换成"2B%”
- 使用encodeURIComponent方法先转码
鸿蒙单框架手机抓包问题,请参考以下内容
证书代理设置
(1) 导入证书到手机执行命令参考如下:
hdc file send charles.pem(pc上证书路径) /storage/media/100/local/files/Download(工程机指定路径)
(2) 连接工程机后执行命令启动证书安装界面
hdc shell aa start -a MainAbility -b com.ohos.certmanager
(3) 选择从存储设备安装,选择指定pem证书
一、 PC端Charles导出证书,点击 Help->SSL Proxying->Save Charles Root Certificate
二、 导入系统根证书至手机:
方案【1】:启动证书安装器进行指定pem证书安装:
1) 将Charles导出的pem文件hdc file send到手机存储器内
2) hdc shell aa start -a MainAbility -b com.ohos.certmanager 启动证书安装器
3) 选择从存储设备安装,选择指定pem证书
方案【2】:替换CA证书,证书路径为沙箱映射路径,系统预设CA证书位置:/etc/ssl/certs/cacert.pem,将Charles导出的pem文件hdc file send到此路径下(目前仅支持后缀名为.pem的文本格式证书);
三、安装Charles证书到PC系统可信目录,操作步骤:
点击 Help->SSL Proxying->Install Charles Root Certificate->安装证书->选择证书存储路径为:受信任的根证书颁发机构
四、设置代理,操作步骤:
1)点击 Proxy->SSL Proxy Settings->在Include添加 : 和 *:443
2)点击 Proxy->Proxy Settings->勾选Enable transparent HTTP proxying
五、鸿蒙App开发时,HTTP请求HttpRequestOptions参数设置:
1)设置usingProxy为true,表示使用HTTP代理;
2)设置caPath为""/etc/ssl/certs/charles-ssl-proxying-certificate.pem""(示例),如默认使用系统预设CA证书目录:/etc/ssl/certs/cacert.pem,也需要手动设置
六、将手机与PC连接在同一局域网下,手机连接WiFi时,点击代理设置(手动),设置代理IP,端口为Charles监听的端口,在上述步骤四的Proxy Settings中可以查看和修改;
七、打开charles,开始抓包
更多关于HarmonyOS鸿蒙Next中请求路径问题以及调试方案的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,请求路径问题通常涉及API调用或资源访问。建议以下调试方案:
- 检查路径配置:确保请求路径正确,包括URL、端口和路径参数。
- 日志调试:使用
HiLog打印请求路径和响应,方便排查问题。 - 网络工具:利用
HttpURLConnection或OkHttp等工具,确保网络请求正常。 - 权限检查:确认应用已获取必要的网络权限。
- 模拟环境:在模拟器中测试,排除设备环境差异。通过这些步骤可有效定位并解决路径问题。


