flutter dio http HttpClient 几种代理方式 http https socks5

964 阅读1分钟

flutter dio http HttpClient 几种代理方式 http https socks5

Http:

(dio.httpClientAdapter as IOHttpClientAdapter).createHttpClient = () {
      return HttpClient()
        ..findProxy = (_) {
          // 这里设置代理
          return "PROXY username:password@host:port";
        };
};

Https

(dio.httpClientAdapter as IOHttpClientAdapter).createHttpClient = () {
      return HttpClient()
        ..findProxy = (_) {
          // 这里设置代理
          return "PROXY username:password@host:port";
        }
        ..connectionFactory = (url, proxyHost, proxyPort) {
          return SecureSocket.startConnect(proxyHost!, proxyPort!);
        };
};

Socks5

添加依赖

dependencies:
  socks5_proxy:
    git:
      url: https://github.com/wilinz/socks_dart.git

代码

(dio.httpClientAdapter as IOHttpClientAdapter).createHttpClient = () {
      final client = HttpClient();
      SocksTCPClient.assignToHttpClient(client, [
        ProxySettings('host.com', port,
            username: 'username',
            password: 'password',
      ]);
      return client;
};