我正在尝试用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。
有人知道我该怎么做吗?
发布于 2019-04-22 08:13:07
这可以通过为所有请求设置默认的标头来完成。
class MyHttpOverrides extends HttpOverrides {
@override
HttpClient createHttpClient(SecurityContext context) {
return new MyHttpClient(super.createHttpClient(context));
}
}
void main() {
HttpOverrides.global = new MyHttpOverrides();
runApp(MyApp());
}可以在HttpClient类中指定代理设置。
https://stackoverflow.com/questions/54763466
复制相似问题