get status code of webview - letusfly85/step-up-android GitHub Wiki

δ»₯下を参考

http://saki0n.blogspot.jp/2013/04/android-webview.html

webView.setWebViewClient(new WebViewClient() {
    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    @Override
    public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
        if (!url.matches("https?://[\\w\\.\\-]+(/.*)?")) {
            return super.shouldInterceptRequest(view, url);
        }
        HttpGet req = new HttpGet(url);
        DefaultHttpClient client = new DefaultHttpClient();
        String mimeType = null, encoding = null;
        byte[] data = null;
        try {
            HttpResponse res = client.execute(req);
            // γ“γ“γ§γ‚Ήγƒ†γƒΌγ‚Ώγ‚Ήγ‚³γƒΌγƒ‰γ‚’ε–εΎ—γ§γγ‚‹γ‚ˆοΌ
            if (HttpStatus.SC_OK == res.getStatusLine().getStatusCode()) {
                HttpEntity entity = res.getEntity();
                Header mimeHeader = entity.getContentType();
                if (null != mimeHeader) mimeType = mimeHeader.getValue();
                Header encodingHeader = entity.getContentEncoding();
                if (null != encodingHeader) encoding = encodingHeader.getValue();
                data = EntityUtils.toByteArray(entity);
            }
        } catch (Exception e) {
            String msg = e.getMessage();
            Log.e(this.getClass().getSimpleName(), (null != msg) ? msg : "");
        } finally {
            req.abort();
            client.getConnectionManager().shutdown();
        }
        InputStream stream = new ByteArrayInputStream(data);
        return new WebResourceResponse(mimeType, encoding, stream);
    }
});