Flutter dio 设置网络代理

21 min read

要设置网络代理,可以在创建Dio实例时使用HttpClientAdapter。以下是一个示例:

import 'package:dio/dio.dart';
import 'package:dio/adapter.dart';

void main() async {
  // 创建 Dio 实例
  Dio dio = Dio();

  // 创建代理服务器配置
  String proxyHost = 'your_proxy_host'; // 代理服务器地址
  int proxyPort = your_proxy_port; // 代理服务器端口号

  // 创建代理配置
  ProxyAdapter proxyAdapter = ProxyAdapter(
    httpClient: dio.httpClientAdapter as DefaultHttpClientAdapter,
    proxyHost: proxyHost,
    proxyPort: proxyPort,
  );

  // 设置代理
  dio.httpClientAdapter = proxyAdapter;

  // 发送请求
  try {
    Response response = await dio.get('https://www.example.com');
    print(response.data);
  } catch (e) {
    print(e);
  }
}

需要注意的是,上述示例中的your_proxy_hostyour_proxy_port需要替换为实际的代理服务器地址和端口号。

另外,还需要在pubspec.yaml中添加diodio_proxy依赖:

dependencies:
  dio: ^4.0.0
  dio_proxy: ^1.0.0

执行flutter pub get来安装依赖。