Android:WebView OnReceivedHttPeror不返回状态代码!=200
我需要知道是否可以用androidAndroid:WebView OnReceivedHttPeror不返回状态代码!=200,android,webview,Android,Webview,我需要知道是否可以用androidWebView加载网页。理想情况下,我希望获取文档状态代码并检查它是否为!=200我在WebViewClient中没有找到任何支持它的方法 有一种方法在某种程度上是有效的 通知主机应用程序在加载资源时从服务器接收到HTTP错误。HTTP错误的状态代码>=400。此回调将针对任何资源(iframe、image等)调用,而不仅仅针对主页。因此,建议在此回调中执行所需的最少工作。请注意,errorResponse参数中可能没有提供服务器响应的内容 但是,即使加载了网页
WebView
加载网页。理想情况下,我希望获取文档状态代码并检查它是否为!=200我在WebViewClient
中没有找到任何支持它的方法
有一种方法在某种程度上是有效的
通知主机应用程序在加载资源时从服务器接收到HTTP错误。HTTP错误的状态代码>=400。此回调将针对任何资源(iframe、image等)调用,而不仅仅针对主页。因此,建议在此回调中执行所需的最少工作。请注意,errorResponse参数中可能没有提供服务器响应的内容
但是,即使加载了网页(例如,缺少.png
),只要返回状态代码高于400的内容,就会调用该文件
我使用这个网站作为参考测试
页面在WebView
中成功加载,但缺少一些文件,如.js
和.png
,这些文件使用404
调用onreceivedhttperor
如何使用
WebView
获取文档状态代码?似乎没有获取文档状态代码的方法。一个变通方法看起来像这样。基本上,打开与httpclient的连接,检查那里的状态代码,然后使用WebView
例如
我正在使用,但与任何其他httpClient
@Override
public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
webView.loadUrl("http://www.google.de");
super.onReceivedHttpError(view, request, errorResponse);
}
AndroidHttpClient httpClient = new AndroidHttpClient(url);
httpClient.get(null, null, new AsyncCallback() {
@Override
public void onComplete(HttpResponse httpResponse) {
if (httpResponse.getStatus() == HttpURLConnection.HTTP_OK) {
webView.loadUrl(url);
} else {
webView.loadUrl("http://www.google.com");
}
}
@Override
public void onError(Exception e) {
webView.loadUrl("http://www.google.com");
}
});