我试图在 webview 上打开一个网站 url。但我收到错误“403 禁止访问被拒绝”。如何解决这个问题?我正在使用 wifi 连接,并且我还在清单文件中写入了 Internet 权限。像这样如何解决这个问题?谢谢你的帮助。
问问题
10839 次
2 回答
1
对于在 2018 年遇到同样问题的任何人。试试下面的代码并阅读我的解释。
关于您为什么会收到 403 Forbidden 错误的可能原因很少。我已经确定了其中的 2 个。
- 这是一个 SSL 问题。
- 你
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 回答