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抓包设置
学习记录,每天不停进步。