flutter开发实战-Charles抓包设置

在开发过程中抓包,可以看到请求参数等数据,方便分析问题。flutter上使用Charles抓包设置。dio需要设置网络代理。

一、dio设置网络代理

在调试模式下需要抓包调试,所以需要使用代理,并且仅用Https证书校验。

// 配置代理
Future<void> configProxy() async {
  // 注意,assert的代码在打包时不会打包到二进制包中,而常数识别,debug代码虽然不会执行,但会打进二进制包中,增大包的体积
  if (kReleaseMode) {
    //release
  } else {
    // debug在有这个配置
    // 添加这部分代码
          var dio = Dio();

          // 在调试模式下需要抓包调试,所以我们使用代理,并禁用HTTPS证书校验
          (dio.httpClientAdapter as DefaultHttpClientAdapter)
              .onHttpClientCreate = (client) {
            client.findProxy = (url) {
              return 'PROXY 172.16.0.99:8888'; //这里将localhost设置为自己电脑的IP,其他不变,注意上线的时候一定记得把代理去掉
            };
            //代理工具会提供一个抓包的自签名证书,会通不过证书校验,所以我们禁用证书校验
            client.badCertificateCallback =
                (X509Certificate cert, String host, int port) => true;
          };
  }
}
    

二、使用Charles进行抓包

通过Charles抓包,配上对应的IP地址及端口。在同一网段即可查看到抓包接口了。

在这里插入图片描述
在这里插入图片描述

三、小结

flutter开发实战-Charles抓包设置

学习记录,每天不停进步。

更多推荐