Why
Flutter官网推荐使用http插件进行网络请求。抓包是开发、测试的有效排查网络异常的手段,但是,http插件的网络请求是不走系统代理的。也就是在不进行代码配置的情况下是无法使用抓包工具进行抓包的。
既然网络不走系统代理,那么能不能获取系统代理的host和port,在Flutter端自动设置?http_proxy插件就是为了解决这个问题。
How
引入插件
在项目的pubspec.yaml添加:
dependencies:
http_proxy: ^1.1.0
代理配置
在main()函数里初始化代理配置
void main() async {
WidgetsFlutterBinding.ensureInitialized();
HttpProxy httpProxy = await HttpProxy.createHttpProxy();
HttpOverrides.global=httpProxy;
runApp(MyApp());
}
这就是Flutter端的所有代码了,然后设置系统代理的host和port就可以使用Charles等抓包工具抓包了。