当前网络模块已支持适配Charles工具抓包,配置方式如下:1、导出证书点击 Help—\>SSL Proxying—\>Save Charles Root Certificate。导入证书到手机执行命令参考如下: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证书。4、安装Charles证书到系统可信目录,点击Help—\>SSL Proxying—\>Install Charles Root Certificate—\>安装证书—\>选择证书存储路径为受信任的根证书颁发机构。5、设置代理,点击 Proxy—\>SSL Proxy Settings—\>在Include添加 : 和 *:443 2)点击Proxy—\>Proxy Settings—\>勾选Enable transparent HTTP proxying。6、Wifi代理设置,将手机与电脑同一局域网下连接,手机连接WiFi时,点击代理设置为手动,修改设置代理IP,端口为Charles监听的端口,默认为8888可在上一步Proxy Settings中查看和修改。7、应用抓取http包,App开发时HTTP请求HttpRequestOptions参数设置,可参考文档设置usingProxy为true,表示使用HTTP代理(该字段默认为false 不使用代理),设置caPath(可根据环境使用设置,默认使用系统预设CA)。http参数设置可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-http-V5工具配置可参考博客:https://juejin.cn/post/6844904182588112904import { fileIo, picker } from '@kit.CoreFileKit'; import { BusinessError } from '@kit.BasicServicesKit'; import { http } from '@kit.NetworkKit' @Entry @Component struct Index { @State uri: string = ""; installCer() { const documentSaveOptions = new picker.DocumentSaveOptions() // 创建文件管理器选项实例 const documentViewPicker = new picker.DocumentViewPicker() // 创建文件选择器实例 documentViewPicker.save(documentSaveOptions).then((documentSaveResult: Array<string>) => { this.uri = documentSaveResult[0]; console.info('documentViewPicker.save to file succeed and uris are:' + this.uri); }).catch((err: BusinessError) => { console.error(`Invoke documentViewPicker.save failed, code is ${err.code}, message is ${err.message}`); }) } requestBaidu() { let req = http.createHttp(); req.on("headersReceive", (h) => { console.info('header: ' + JSON.stringify(h)); }) req.request("https://www.huawei.com/"); } build() { Column() { // 调用 picker 创建证书文件 Button('安装证书') .onClick(() => { this.installCer(); }) // 将本地(resource/rawfile/test.pem)证书写入手机 内部存储/download 中 Button('写入证书').onClick(async () => { let file = fileIo.openSync(this.uri, fileIo.OpenMode.READ_WRITE); let buf: Uint8Array = await getContext(this) .resourceManager .getRawFileContent('test.pem') // uint8buff 转 arraybuf let buffer: ArrayBuffer = buf.buffer.slice(0); try { let writeLen: number = fileIo.writeSync(file.fd, buffer); } catch (e) { console.info("tag " + JSON.stringify(e)) } fileIo.closeSync(file); }) // 测试抓包 Button('测试抓包').onClick(() => { this.requestBaidu(); }) } } }
当前网络模块已支持适配Charles工具抓包,配置方式如下:
1、导出证书点击 Help—\>SSL Proxying—\>Save Charles Root Certificate。导入证书到手机执行命令参考如下:
2、连接手机后执行命令启动证书安装界面:
3、选择从存储设备安装,选择指定pem证书。
4、安装Charles证书到系统可信目录,点击Help—\>SSL Proxying—\>Install Charles Root Certificate—\>安装证书—\>选择证书存储路径为受信任的根证书颁发机构。
5、设置代理,点击 Proxy—\>SSL Proxy Settings—\>在Include添加 : 和 *:443 2)点击Proxy—\>Proxy Settings—\>勾选Enable transparent HTTP proxying。
6、Wifi代理设置,将手机与电脑同一局域网下连接,手机连接WiFi时,点击代理设置为手动,修改设置代理IP,端口为Charles监听的端口,默认为8888可在上一步Proxy Settings中查看和修改。
7、应用抓取http包,App开发时HTTP请求HttpRequestOptions参数设置,可参考文档设置usingProxy为true,表示使用HTTP代理(该字段默认为false 不使用代理),设置caPath(可根据环境使用设置,默认使用系统预设CA)。
http参数设置可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-http-V5
工具配置可参考博客:https://juejin.cn/post/6844904182588112904