dio 代理配置
import 'package:dio/adapter.dart'; import 'package:dio/dio.dart'; // 代理抓包设置 // 在调试模式下需要抓包调试,所以我们使用代理,并禁用HTTPS证书校验 if (_isDebug) { (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) { // config the http client client.findProxy = (uri) { //proxy all request to 192.168.2.199:8888 return 'PROXY 192.168.2.199:8888'; }; client.badCertificateCallback = (X509Certificate cert, String host, int port) => true; // you can also create a new HttpClient to dio // return HttpClient(); }; }
Charles设置
工具栏 Proxy > Proxy Settings > Proxies 获取代理地址端口
Android Studio 的全局代理配置
void checkForCharlesProxy(Dio dio) { const charlesIp = String.fromEnvironment('CHARLES_PROXY_IP', defaultValue: null); if (charlesIp == null) return; debugPrint('#CharlesProxyEnabled'); (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) { client.findProxy = (uri) => "PROXY $charlesIp:8888;"; client.badCertificateCallback = (X509Certificate cert, String host, int port) => true; }; }
debug 配置项 选择 Edit Configurations > Additional run args
// flutter run --dart-define=CHARLES_PROXY_IP=192.168.0.52
--dart-define=CHARLES_PROXY_IP=192.168.0.52