国内常用的代理服务器 flutter如何配置
“在国内开发Flutter应用时,如何正确配置代理服务器?我在使用flutter pub get时经常因网络问题失败,尝试过在环境变量设置HTTP_PROXY和HTTPS_PROXY,但偶尔还是不生效。请问有没有稳定的代理配置方案?是否需要修改Flutter SDK本身的网络设置?希望了解具体步骤和注意事项。”
2 回复
在Flutter中配置代理,可在android/app/src/main/AndroidManifest.xml中添加网络权限,并在pubspec.yaml中设置代理环境变量,如http_proxy和https_proxy。也可通过代码使用dio库配置代理。
更多关于国内常用的代理服务器 flutter如何配置的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中配置代理服务器,主要用于开发调试(如抓包)或处理网络请求。以下是常见方法和示例:
1. 开发环境配置(抓包工具如Charles/Fiddler)
在 android/app/src/main/AndroidManifest.xml 的 <application> 标签内添加网络配置:
<application
android:usesCleartextTraffic="true"
...>
<!-- 允许HTTP明文流量 -->
</application>
启动时设置代理(适用于模拟器/真机调试):
# 启动模拟器时指定代理
emulator -avd <模拟器名称> -http-proxy http://<代理IP>:<端口>
# 或通过环境变量(部分库支持)
export HTTP_PROXY=http://127.0.0.1:8888
export HTTPS_PROXY=http://127.0.0.1:8888
2. 代码中配置网络请求代理
使用 http 或 dio 库时,可通过 BaseOptions 配置代理:
Dio示例:
import 'package:dio/dio.dart';
void setupProxy() {
final dio = Dio();
(dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) {
client.findProxy = (uri) {
return "PROXY 192.168.1.100:8888;"; // 替换为你的代理地址
};
// 忽略证书错误(仅调试用)
client.badCertificateCallback = (cert, host, port) => true;
};
}
http库示例:
import 'package:http/http.dart' as http;
void requestWithProxy() async {
final client = http.Client();
final response = await client.get(
Uri.parse('https://example.com'),
headers: {'Proxy-Authorization': 'Basic ${base64Encode(utf8.encode('用户名:密码'))}'},
);
}
3. 注意事项
- 生产环境:不建议硬编码代理配置,应通过配置文件或环境变量动态设置。
- 安全性:代理服务器可能拦截敏感数据,请确保使用可信代理。
- 平台差异:Android和iOS的代理设置方式可能不同,需分别测试。
常用代理工具地址
- Charles/Fiddler默认地址:
127.0.0.1:8888 - 企业代理示例:
10.0.0.1:8080(需替换为实际地址)
根据实际需求选择合适的方式,开发阶段推荐使用抓包工具配置,生产环境建议通过服务器端解决网络限制问题。

