我在SOF中搜索了很多,但仍未找到解决问题的方法。 我需要编写使用代理配置(包括登录名和密码)并连接到一些被阻止的URL的应用程序。 我用这个:
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setGeolocationEnabled(true);
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
WebView.enablePlatformNotifications();
mWebView.loadUrl("https://m.facebook.com/");
mWebView.setWebChromeClient(new WebChromeClient() {
public void onGeolocationPermissionsShowPrompt(String origin,
GeolocationPermissions.Callback callback) {
callback.invoke(origin, true, false);
}
});
而且:
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpHost proxy = new HttpHost(PROXY_HOST, PROXY_PORT_INT);
httpclient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, proxy);
httpclient.getCredentialsProvider().setCredentials(
new AuthScope(PROXY_HOST, PROXY_PORT_INT),
new UsernamePasswordCredentials(USERNAME, PASSWORD));
我想我应该以某种方式连接这些部分。但我不知道如何:(
答案 0 :(得分:0)
WebView自行处理HTTP请求/响应。您正在尝试使用新的HTTP客户端来获取HTTP响应。虽然有一种方法可以在WebView中显示DefaultHttpClient的响应(请参阅此主题 - https://stackoverflow.com/a/3007978/255872),但这非常麻烦。相反,您可以直接在WebView上设置代理。
虽然没有API在WebView上设置代理,但可以使用Reflection进行代理。检查此SO帖子 - WebView android proxy