android - Flutter WebView 与代理
问题描述
我正在尝试使用加载代理页面的 webview 构建应用程序。我需要以编程方式更改代理(设置 ip、端口、用户名和密码)。
我有一个使用WebviewScaffold (flutter_webview_plugin: ^0.3.0+2)并像这样覆盖全局HttpClient的想法:
class CustomHttp extends HttpOverrides{
@override
HttpClient createHttpClient(SecurityContext securityContext){
var client = new HttpClient();;
client.findProxy = (Uri uri) {
return 'PROXY XX.XX.XX.XX:{PORT};';
};
client.authenticate = (uri, scheme, realm) {
client.addCredentials(uri, realm, new HttpClientBasicCredentials('username', 'password'));
};
return client;
}
}
但没有运气。看起来 WebviewScaffold 没有使用全局 HttpClient。
有谁知道我该怎么做?
解决方案
可以通过为 Flutter HTTP 请求中的所有请求设置默认标头来完成。
class MyHttpOverrides extends HttpOverrides {
@override
HttpClient createHttpClient(SecurityContext context) {
return new MyHttpClient(super.createHttpClient(context));
}
}
void main() {
HttpOverrides.global = new MyHttpOverrides();
runApp(MyApp());
}
您可以在 HttpClient 类中指定代理设置。
推荐阅读
- javascript - 使用Javascript动态循环遍历对象数组
- java - 为什么 URI 构造函数允许缺少协议(而 URL 不允许)?
- java - 这是否可以只调用一次“Okay Glass”
- reactjs - react js onclick函数不调用
- php - 将模板添加到 WHMCS
- microsoft-graph-api - 如何使用 Microsoft Graph 访问其他用户的日历约会
- django - FieldError:CharField 的不支持查找“unaccent”或不允许加入该字段
- memory - 服务器内存使用报告不正确?
- html - 如何在 html 视频标签中播放 s3 视频网址?
- javascript - 使用 blob URL 和程序化点击事件的自动下载是如何工作的?