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中的’+‘被替换成了’ '。

问题:

  1. 首先这个地址被替换的问题是否被net库处理了。
  2. 目前看wifi没办法设置代理,请问有没有类似于抓包的方案来排查请求过程中遇到的问题。

更多关于HarmonyOS鸿蒙Next中请求路径问题以及调试方案的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

当url请求参数带有"+"时,经过服务器时会转换成空格,这样会导致后台获取到无效的参数,使得路径解析错误。推荐解决方法如下:

  1. 将"+“替换成"2B%”
  2. 使用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调用或文件路径配置相关。调试方案可通过以下方式进行:

  1. 路径配置检查:确保在config.json或相关配置文件中正确配置了资源路径或API接口路径,路径应遵循鸿蒙的文件系统规则。

  2. 日志输出:使用hilog模块打印请求路径及相关信息,如hilog.info,通过日志排查路径是否正确传递或解析。

  3. 模拟器调试:在鸿蒙IDE的模拟器中运行应用,检查路径请求是否正常,模拟器支持资源访问和网络请求的调试。

  4. 断点调试:在IDE中设置断点,逐步跟踪路径处理逻辑,查看变量值是否正确。

  5. 网络请求工具:使用@ohos.net.http模块发起请求时,检查url参数是否符合预期,可通过console.log输出请求结果。

  6. 权限检查:确保应用已申请必要的权限,如网络权限或文件访问权限,避免因权限问题导致路径请求失败。

  7. 异常捕获:使用try-catch捕获路径处理中的异常,定位具体错误。

通过以上方法,可有效排查和解决HarmonyOS鸿蒙Next中的请求路径问题。

在HarmonyOS鸿蒙Next中,请求路径问题通常涉及API调用或资源访问。建议以下调试方案:

  1. 检查路径配置:确保请求路径正确,包括URL、端口和路径参数。
  2. 日志调试:使用HiLog打印请求路径和响应,方便排查问题。
  3. 网络工具:利用HttpURLConnectionOkHttp等工具,确保网络请求正常。
  4. 权限检查:确认应用已获取必要的网络权限。
  5. 模拟环境:在模拟器中测试,排除设备环境差异。通过这些步骤可有效定位并解决路径问题。
回到顶部