Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:WebView OnReceivedHttPeror不返回状态代码!=200_Android_Webview - Fatal编程技术网

Android:WebView OnReceivedHttPeror不返回状态代码!=200

Android:WebView OnReceivedHttPeror不返回状态代码!=200,android,webview,Android,Webview,我需要知道是否可以用androidWebView加载网页。理想情况下,我希望获取文档状态代码并检查它是否为!=200我在WebViewClient中没有找到任何支持它的方法 有一种方法在某种程度上是有效的 通知主机应用程序在加载资源时从服务器接收到HTTP错误。HTTP错误的状态代码>=400。此回调将针对任何资源(iframe、image等)调用,而不仅仅针对主页。因此,建议在此回调中执行所需的最少工作。请注意,errorResponse参数中可能没有提供服务器响应的内容 但是,即使加载了网页

我需要知道是否可以用android
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");
            }
        });