v0.1.0
system_proxy
一個 Flutter 插件,用於取得系統插件。可用來為 dart HttpClient 設定代理以擷取請求。
23喜歡 1萬近 30 天下載150Pub 分數
AndroidiOS
一個用於取得系統外掛的 Flutter 插件。用於設定 Dart HttpClient 代理以擷取請求
{"sdk":"flutter"}{"sdk":"flutter"}以下為英文專案原文快照,最新內容請造訪 GitHub。
A Flutter Plugin to get system proxy setting. It is used to proxy for Flutter and Dart HttpClient request。Because Dart HttpClient does not adapt the system proxy setting automatically in default, it's difficult to grab requests for testing .
获取系统代理配置。
可用于为flutter的Dart HttpClient的请求设置代理,因为默认Dart请求不会理睬系统代理配置,这对于抓取请求来进行测试等场景造成不小困难。
Please add the plugin to pubspec.yaml.
It's useful for Android >= 23 .
Import
import 'package:system_proxy/system_proxy.dart';
Code
// the proxy value likes: {port: 8899, host: 127.0.0.1}
Map<String, String> proxy = await SystemProxy.getProxySettings();
if (proxy != null) {
print('proxy $proxy');
}
class ProxiedHttpOverrides extends HttpOverrides {
String _port;
String _host;
ProxiedHttpOverrides(this._host, this._port);
@override
HttpClient createHttpClient(SecurityContext context) {
return super.createHttpClient(context)
// set proxy
..findProxy = (uri) {
return _host != null ? "PROXY $_host:$_port;" : 'DIRECT';
};
}
}
void main() async {
Map<String, String> proxy = await SystemProxy.getProxySettings();
if (proxy == null) {
proxy = {
'host': null,
'port': null
};
}
HttpOverrides.global = new ProxiedHttpOverrides(proxy['host'], proxy['port']);
runApp(MyApp());
}