如何获取服务器响应代码以在WebView上重定向响应

时间:2013-03-21 12:33:54

标签: android android-layout android-intent android-webview

我有一个WebView组件,我已经设置了WebViewClient

WebView webView = (WebView)findViewById(R.id.my_webview);

webView.setWebViewClient(
         new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String newUrl) {

                       //Here, I handle the url redirecting.
                       //@newUrl is the redirected url

                       // How to get server response code here??

                }
         }
);

如上所述,我的代码处理shouldOverrideUrlLoading(...)中的重定向网址。它工作正常。有时,重定向的服务器响应是带有错误消息的错误代码,例如,服务器日志是:

 < 400
 < Content-Type: text/plain
 Bad header value: 'name'

在上述情况下,WebView页面显示“错误标题值:'名称'”。

我的问题是,在我的java代码中,如何获取重定向响应的服务器响应代码(例如,在上面的情况 400 中)?

====================我尝试了什么===================== =====

我尝试将onReceivedError()添加到new WebViewClient(){...}中以捕获错误响应,但代码未执行。

@Override
public void onReceivedError (WebView view, int errorCode, String description, String failingUrl){
        Log.v("onReceivedError:", errorCode+":"+description);
}

1 个答案:

答案 0 :(得分:0)

截至目前..我猜的唯一(正确)方式不是通过java代码。实际上,它是通过将javascript注入到您的webview中,其中会提供响应代码。

请参阅此answer here