Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 颤振应用iOS模拟器设置透明代理_Dart_Ios Simulator_Flutter - Fatal编程技术网

Dart 颤振应用iOS模拟器设置透明代理

Dart 颤振应用iOS模拟器设置透明代理,dart,ios-simulator,flutter,Dart,Ios Simulator,Flutter,我需要通过本地代理运行flifter应用程序发出的每个网络请求localhost:3128。此代理在我的系统中全局设置,iOS模拟器将拾取设置(即在模拟器上使用Safari可以正常工作)。如果我像下面这样明确指定我的代理,我的颤振应用程序的网络连接工作正常: HttpClient client = HttpClient(); client.findProxy = (uri) { return "PROXY localhost:3128;"; }; .... 但是,我自然不能使用基于Http

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

HttpClient client = HttpClient();
client.findProxy = (uri) {
  return "PROXY localhost:3128;";
};
....
但是,我自然不能使用基于
HttpClient
的抽象,也不能公开手动设置代理的方法,例如


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

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

  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());
}

HttpOverrides是否有助于使Flatter对来自应用程序的所有请求使用相同的代理,如中所示?在uri中将传递什么?在uri中将传递什么?