flutter如何配置代理
在Flutter开发中,如何配置HTTP代理?我需要在项目中访问需要代理的API,但在Android和iOS模拟器上都无法正常连接。请问该如何在Flutter中设置代理,是否需要分别配置Android和iOS?有没有通用的解决方案?
2 回复
在Flutter项目中配置代理,可在android/app/src/main/AndroidManifest.xml中添加以下代码:
<application
android:usesCleartextTraffic="true">
...
</application>
或在pubspec.yaml中设置环境变量:
environment:
http_proxy: "http://your-proxy-ip:port"
https_proxy: "http://your-proxy-ip:port"
也可通过命令行启动时指定代理:
flutter run --dart-define=http_proxy=your-proxy-ip:port
更多关于flutter如何配置代理的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中配置代理可以通过以下几种方式实现:
1. 在项目中配置(推荐)
在 android/app/src/main/AndroidManifest.xml 中添加网络权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
2. 代码中配置代理
对于Dart/Flutter网络请求:
import 'package:http/http.dart' as http;
void fetchData() async {
final proxyUrl = 'http://your-proxy-server:port';
final client = http.Client();
final response = await client.get(
Uri.parse('https://api.example.com/data'),
headers: {
'Proxy-Authorization': 'Basic ${base64Encode(utf8.encode('username:password'))}',
},
);
print(response.body);
}
使用dio库(推荐):
import 'package:dio/dio.dart';
import 'package:dio/io.dart';
void setupProxy() {
final dio = Dio();
(dio.httpClientAdapter as IOHttpClientAdapter).onHttpClientCreate = (client) {
client.findProxy = (uri) {
return "PROXY your-proxy-server:port;";
};
// 设置代理认证(如果需要)
client.badCertificateCallback =
(X509Certificate cert, String host, int port) => true;
return client;
};
}
3. 系统级别配置
Android:
在 android/app/src/main/AndroidManifest.xml 中配置:
<application
android:networkSecurityConfig="@xml/network_security_config"
...>
</application>
创建 android/app/src/main/res/xml/network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
4. 开发时配置
在运行Flutter应用时通过环境变量设置:
export http_proxy=http://proxy-server:port
export https_proxy=http://proxy-server:port
flutter run
注意事项:
- 确保代理服务器地址和端口正确
- 如果需要认证,提供正确的用户名和密码
- 在正式发布时移除不必要的代理配置
- 考虑网络安全性,避免在敏感环境中使用不安全的代理
选择哪种方式取决于你的具体需求:开发调试使用环境变量,生产环境使用代码配置。

