首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >颤动应用iOS模拟器设置透明代理

颤动应用iOS模拟器设置透明代理
EN

Stack Overflow用户
提问于 2018-06-20 21:53:21
回答 1查看 849关注 0票数 2

我需要通过本地代理localhost:3128运行从Flutter应用程序发出的每个网络请求。此代理在我的系统中全局设置,iOS模拟器获取设置(即,在模拟器上使用Safari工作良好)。如果我像这样明确地指定我的代理,我的Flutter应用程序的网络连接就可以正常工作:

代码语言:javascript
复制
HttpClient client = HttpClient();
client.findProxy = (uri) {
  return "PROXY localhost:3128;";
};
....

但是,我自然不能使用构建在HttpClient上的抽象,也不能公开手动设置代理的方法,比如NetworkImage

为了我的开发目的,有没有办法为应用程序中使用的所有HttpClient全局设置代理?或者,在iOS模拟器中设置适当的环境变量以便findProxyFromEnvironment选择正确的环境变量的最佳方法是什么?最后,有没有办法在iOS模拟器中使代理透明?

EN

回答 1

Stack Overflow用户

发布于 2019-05-23 07:02:57

您可以使用HttpOverrides.global拥有单个拦截器,该拦截器可用于在实例化时创建HTTP客户端。

代码语言:javascript
复制
  class MyHttpOverrides extends HttpOverrides {
  @override
  HttpClient createHttpClient(SecurityContext context) {
     return super.createHttpClient(context)
       ..findProxy = (uri) {
         return "PROXY localhost:3128;";
       }
       ..badCertificateCallback =
         (X509Certificate cert, String host, int port) => true;
   }
}

void main() {
  HttpOverrides.global = new MyHttpOverrides();
  runApp(MyApp());
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50949938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档