0

私は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??

                }
         }
);

上記のように、私のコードは の URL のリダイレクトを処理しshouldOverrideUrlLoading(...)ます。それは正常に動作します。リダイレクトされたサーバーの応答が、エラー メッセージ付きのエラー コードである場合があります。たとえば、サーバー ログは次のようになります。

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

上記の場合、WebViewページに「Bad header value: 'name'」と表示されます。

私の質問は、私のJavaコードで、リダイレクト応答のサーバー応答コード(上記の例では400 )を取得するにはどうすればよいですか?

==================== 試したこと =========================

エラー応答をキャッチするために に追加しようとしましonReceivedError()new WebViewClient(){...}が、コードは実行されません。

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

1 に答える 1

0

今のところ..私が推測する唯一の(適切な)方法は、Javaコードを使用することではありません。実際、Webビューにjavascriptを挿入すると、応答コードが得られます。

こちらの回答をご覧ください

于 2013-03-21T14:13:00.873 に答える