2011-04-15 47 views
1

我试图访问的网页发回403错误。我期待WebViewClient收到一个错误,但它没有。它不应该得到错误?即使服务器发回错误,WebView也不会收到错误

engine.setWebViewClient(new WebViewClient() { 
     boolean error = false; 
     public void onReceivedError(WebView view, int errorCode, 
       String description, String failingUrl) { 

      //IT DOESN'T COME HERE even IF SERVER SENDS BACK 403 ERROR 
     } 
    }); 

它接缝像,我将不得不使用的HttpRequest读取响应和解析响应检查这是怎么回事。有没有其他方法可以做到这一点?我可以从WebView中检查标题吗?

回答

2

我不得不使用两个请求来实现这个需求。首先请求检查证书是否正常,并且没有错误(使用HttpURLConnection)。只有在响应正常的情况下,我才能加载web视图。

protected Void doInBackground(final String... url) { 
     boolean failed = false; 
     int error = 0; 

     try { 
      URL urlToLoad = new URL(url[0]); 
      HttpURLConnection conn = (HttpURLConnection) urlToLoad 
        .openConnection(); 
      int response = conn.getResponseCode(); 
      if (response != HttpURLConnection.HTTP_OK) { 
       error = response; 
       failed = true; 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     if (!failed) { 
      webView.loadUrl(url[0]); 
     } else { 
      handler.post(hideProgressRunnable); 
      connecting = false; 
      showError(ErrorMap.getErrorForHttpCode(error)); 
     } 
     return null; 
    } 
+0

伤心但真实。请考虑针对此问题主播Android问题:http://code.google.com/p/android/issues/detail?id=32755&q=webview%20error&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars – larham1 2012-08-27 02:43:57

相关问题