Android 拦截WebView请求,并加入或修改参数(GET)

今天遇到一个需求,H5内部调用登录请求,然后手机端给他拼接用户的ID及其他消息

这个WebView提供了方法shouldInterceptRequest

下面代码,只是简单demo,请求方式是get

mWebView.setWebViewClient(new WebViewClient() {
    @Nullable
    @Override
    public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
        if (url.contains("UserName")) {
            URL urlStr = null;
            try {
                urlStr = new URL(url+"?userId=12");
                URLConnection rulConnection = urlStr.openConnection();
                HttpURLConnection conn = (HttpURLConnection) rulConnection;
                conn.setRequestProperty("Accept-Charset", "utf-8");
                conn.setRequestProperty("contentType", "utf-8");
                conn.setRequestMethod("GET");
                // Read input
                String charset = conn.getContentEncoding() != null ? conn.getContentEncoding() : Charset.defaultCharset().displayName();
                String mime = conn.getContentType();
                InputStream isContents = conn.getInputStream();
                return new WebResourceResponse(mime, charset,
                        isContents);
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        } else {
            return super.shouldInterceptRequest(view, url);
        }
    }
});

猜你喜欢

转载自blog.csdn.net/qq_30711091/article/details/83617637