2

我试图在 webview 上打开一个网站 url。但我收到错误“403 禁止访问被拒绝”。如何解决这个问题?我正在使用 wifi 连接,并且我还在清单文件中写入了 Internet 权限。像这样如何解决这个问题?谢谢你的帮助。

4

2 回答 2

1

对于在 2018 年遇到同样问题的任何人。试试下面的代码并阅读我的解释。

关于您为什么会收到 403 Forbidden 错误的可能原因很少。我已经确定了其中的 2 个。

  1. 这是一个 SSL 问题。
  2. User Agent被网站屏蔽了。

以下是设置 SSL 配置的方法。这里newsWebView是一个WebView.

newsWebView.setWebViewClient(new WebViewClient() {
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    view.loadUrl(url);
                    return true;
                }

                public void onPageFinished(WebView view, String url) {
                }

                public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                }

                public void onReceivedSslError(final WebView view, final SslErrorHandler handler, final SslError error) {
                    // TODO Auto-generated method stub
                    super.onReceivedSslError(view, handler, error);
                    handler.proceed();
                }
            });

这就是您设置User Agent. 我正在设置 Google Chrome 代理,这是我们通常在手机中找到的代理。

newsWebView.getSettings().setUserAgentString("Mozilla/5.0 (Linux; <Android Version>; <Build Tag etc.>) AppleWebKit/<WebKit Rev> (KHTML, like Gecko) Chrome/<Chrome Rev> Mobile Safari/<WebKit Rev>");
于 2018-05-10T05:52:36.070 回答
-1

尝试在您的 Web 客户端上添加此代码:

 public void onReceivedSslError(final WebView view, final SslErrorHandler handler, final SslError error) {
                // TODO Auto-generated method stub
                super.onReceivedSslError(view, handler, error);
                handler.proceed();
            }

如果网站出现 SSL 错误,它将允许 webview 加载页面

于 2013-07-22T12:33:33.477 回答