当前位置:  开发笔记 > 前端 > 正文

Android:WebView shouldInterceptRequest不在WebView中添加RequestProperties

如何解决《Android:WebViewshouldInterceptRequest不在WebView中添加RequestProperties》经验,为你挑选了0个好方法。

我正在使用shouldInterceptRequest拦截来自webview的请求

下面是我返回WebResourceResponse的代码

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
    private static WebResourceResponse handleRequestViaUrlOnly(WebResourceRequest webResourceRequest){
        String url = webResourceRequest.getUrl().toString();
        Log.i("intercepting req....!!!", url);
        String ext = MimeTypeMap.getFileExtensionFromUrl(url);
        String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext);

        try {
            HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
            conn.setRequestProperty("Sample-Header", "hello");
            conn.setDoOutput(true);
            conn.setDoInput(true);
            conn.setUseCaches(false);
            return new WebResourceResponse(mime, "UTF-8", conn.getInputStream());
        } catch (IOException e) {
            e.printStackTrace();
        }

        return null;
    }

我在CustomWebViewClient中调用此方法

class CustomWebViewClient extends WebViewClient {

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    @Override
    public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
        return handleRequestViaUrlOnly(request);
    }
}

但是,当我在chrome:// inspect /#devices中检查来自WebView远程调试器的请求标头时.

我添加的附加RequestProperty不存在.

conn.setRequestProperty("Sample-Header", "hello");

WebView中的请求标头中不存在Sample-Header.

我错过了什么吗?我会感激任何帮助.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有