杭州萧山做网站公司国外做伞的品牌网站
- 作者: 五速梦信息网
- 时间: 2026年03月21日 10:56
当前位置: 首页 > news >正文
杭州萧山做网站公司,国外做伞的品牌网站,南昌网站建设方案推广,苏州seo营销Flutter应用网络请求调试一直是业内难题#xff0c;原因在于Dart语言标准库的网络请求不会走Wi-Fi代理#xff0c;常规通过配置Wi-Fi代理来抓包的方式行不通。这给我们日常开发测试造成了很大的阻碍#xff0c;严重降低工作效率。因此写一篇教程#xff0c;讲解如何使用Req…Flutter应用网络请求调试一直是业内难题原因在于Dart语言标准库的网络请求不会走Wi-Fi代理常规通过配置Wi-Fi代理来抓包的方式行不通。这给我们日常开发测试造成了很大的阻碍严重降低工作效率。因此写一篇教程讲解如何使用Reqable对Flutter移动应用进行抓包调试。
- 环境准备 电脑Windows/Mac/Linux机器安装Reqable客户端建议2.18.0以上版本。 手机Android/iOS设备安装Reqable移动端App要求最低2.19.0版本。
- 安装证书 首先启动Reqable电脑客户端完成初始化进入主界面。点击顶部手机图标打开二维码。 接下来手机连接到和电脑所在的同一个Wi-Fi局域网。打开Reqable手机App选择协同模式扫码上面电脑端二维码进行连接。 连接成功后开始下一步安装证书。由于是对手机抓包需要在手机安装证书而不是在电脑安装证书所以电脑上的证书可以选择不安装。 Reqable在上面选择协同模式初始化的时候已经自动将电脑的根证书同步到了手机安装证书只需要在手机上操作即可无需将证书手动从电脑拷贝传输到手机。注意手机抓包必须安装电脑证书到手机。如果App是以独立模式初始化App会生成和电脑不同的根证书扫码连接电脑后需要手动同步根证书到手机再安装。 Android设备 注意Flutter应用程序只信任Android系统目录的证书不会信任用户证书。Native应用我们可以通过配置 network_security_config.xml 文件或者降低targetSdkVersion到33来让应用信任用户证书但是这个对于Flutter应用是不行的。 因为Dart SDK中已经强行写死了只信任系统目录下的证书。这个逻辑定义在 runtime/bin/security_context_linux.cc 中有兴趣可以去翻看源码。 // On Android, we dont compile in the trusted root certiicates. Instead,// we use the directory of trusted certificates already present on the// device. This saves ~240KB from the size of the binary. This has the// drawback that SSL_do_handshake will synchronously hit the filesystem// looking for root certs during its trust evaluation. We call// SSL_do_handshake directly from the Dart thread so that Dart code can be// invoked from the bad certificate callback called by SSL_do_handshake.const char* android_cacerts /system/etc/security/cacerts;LoadRootCertCache(android_cacerts); Android设备上要安装证书到系统目录目前只有两种方式 方式一Root设备解锁System分区将证书复制到 /system/etc/security/cacerts 目录。可以按照Reqable中的提示进行操作。 adb rootadb shell avbctl disable-verificationadb remountadb push reqable-ca.crt /system/etc/security/cacerts/证书hash.0 方式二设备刷Magisk环境从Reqable手机App中下载证书模块安装即可。 根证书安装成功后Reqable手机App会有证书已安装的提示。如果已经安装但仍然提示证书未安装可能是操作出错请复查安装步骤。不要怀疑检测有问题 iOS设备 iOS安装证书要简单很多标准三个步骤。 a. 下载描述文件。可以从Reqable手机App直接保存也可以启动浏览器下载描述文件。 b. 设置 - 下载的描述文件 - 选择文件 - 安装。 c. 设置 - 通用 - 关于 - 证书信任设置 - 打开开关。 可以看到iOS设备安装证书要简单很多所以我们一般推荐使用iOS设备调试。 更多有关证书安装的说明可以查阅Reqable官网文档。
- 增强模式 在手机App上Reqable提供了两种网络流量捕获模式一种是常规模式一种是增强模式。这里先简单介绍下两种模式的区别。 常规模式和配置Wi-Fi代理效果一样但是不需要用户去手动配置Wi-Fi代理。可以对绝大多数应用的流量分析包括浏览器等。 增强模式强制捕获所有的流量包括不走Wi-Fi代理的网络请求流量例如我们需要解决的Flutter应用。在Android设备上增强模式还可以获取到流量来源的应用信息。 默认情况下Android是自动开启增强模式的用户无需手动开启。iOS设备有些特殊手机在飞协同模式下无法开启增强模式必须连接协同设备电脑并在标题菜单中手动开启。 对于Flutter应用请一定要开启增强模式。增强模式开启后标题后面会出现一个钥匙标记。
- 实战演示 首先创建一个Flutter空项目这个项目我们简单改改代码作为测试应用。 flutter create capture_test 加点代码比如点击 按钮发送一次HTTP请求。 void _incrementCounter() async {final HttpClient httpClient HttpClient();final HttpClientRequest request await httpClient.getUrl(Uri.parse(https://httpbin.org/get));request.close(); } 通过下面的命令启动Flutter应用。 flutter run -d 设备ID 接下来我们开始测试。Reqable手机App中开启调试电脑端同时会进入调试状态如果电脑没有自动开启调试那么手动启动一下。 正常情况下应该能成功抓到HTTP请求了如下图。 如果出现下图这种客户端SSL握手失败的提示说明是手机上证书没有安装成功。 这种情况在命令行控制台中也能看到Flutter的报错。 E/flutter (24436): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: HandshakeException: Handshake error in client (OS Error: E/flutter (24436): CERTIFICATE_VERIFY_FAILED: unable to get local issuer certificate(handshake.cc:393)) E/flutter (24436): #0 _SecureFilterImpl._handshake (dart:io-patch/secure_socket_patch.dart:99:46) E/flutter (24436): #1 _SecureFilterImpl.handshake (dart:io-patch/secure_socket_patch.dart:143:25) E/flutter (24436): #2 _RawSecureSocket._secureHandshake (dart:io/secure_socket.dart:920:54) E/flutter (24436): #3 _RawSecureSocket._tryFilter (dart:io/secure_socket.dart:1049:19) E/flutter (24436): asynchronous suspension Q只有Android设备且无法将证书安装到系统证书目录那么该怎么办 修改代码强行信任任意证书通过这个还可以跳过前面证书安装那一步真正的无门槛但就是不安全。所以请注意应用正式发行版本务必删除或者绕过此项设置。 httpClient.badCertificateCallback (X509Certificate cert, String host, int port) true; Q只想用电脑不想用Reqable手机App协同怎么办 同样要修改代码配置网络请求必须走代理 httpClient.findProxy (url) { return PROXY 电脑IP:电脑抓包端口;}; 好了本篇教程到这里基本就结束了。 本文作者MegatronKing
- 上一篇: 杭州微网站开发佛山网站建设首页排名
- 下一篇: 杭州协会网站建设wordpress 上一篇
相关文章
-
杭州微网站开发佛山网站建设首页排名
杭州微网站开发佛山网站建设首页排名
- 技术栈
- 2026年03月21日
-
杭州网站制作外包app软件开发公司员工守则
杭州网站制作外包app软件开发公司员工守则
- 技术栈
- 2026年03月21日
-
杭州网站怎么制作公主岭市住房和城乡建设局网站
杭州网站怎么制作公主岭市住房和城乡建设局网站
- 技术栈
- 2026年03月21日
-
杭州协会网站建设wordpress 上一篇
杭州协会网站建设wordpress 上一篇
- 技术栈
- 2026年03月21日
-
杭州学校网站开发全国建设管理信息网站
杭州学校网站开发全国建设管理信息网站
- 技术栈
- 2026年03月21日
-
杭州有哪些性价比高的网站建设服务商网站建设好后如何连接服务器
杭州有哪些性价比高的网站建设服务商网站建设好后如何连接服务器
- 技术栈
- 2026年03月21日
