【问题标题】:How to use Proxy configurations in WebView (Android)?如何在 WebView (Android) 中使用代理配置?
【发布时间】:2013-10-04 19:13:19
【问题描述】:

我在 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));

我想我应该以某种方式连接这些部分。但我不知道怎么做:(

【问题讨论】:

    标签: android webview proxy


    【解决方案1】:

    WebView 自己处理 HTTP 请求/响应。您正在尝试使用新的 HTTP 客户端来获取 HTTP 响应。虽然有一种方法可以在 WebView 中显示来自 DefaultHttpClient 的响应(请参阅此线程 - https://stackoverflow.com/a/3007978/255872),但这非常麻烦。相反,您可以直接在 WebView 上设置代理。

    虽然没有 API 可以在 WebView 上设置代理,但可以使用反射来完成。检查此 SO 帖子 - WebView android proxy

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多