我需要将自定义标头添加到来自WebView
. 我知道loadURL
有用于添加额外标头的参数,但这些仅适用于某些请求。所有(与资源相关的)请求都不包含标头。我查看了 中的所有覆盖WebViewClient
,但没有任何内容允许将标头添加到资源请求 -onLoadResource(WebView view, String url)
和shouldInterceptRequest(Webview,url)
. 任何帮助都会很棒。
问问题
20186 次
1 回答
9
shouldInterceptRequest(Webview,url)
可以帮助你拦截网站的每一个请求,例如JavaScript、CSS、Image。然后在里面shouldInterceptRequest(Webview,url)
你可以使用参数url
来初始化新的http请求HttpClient
,HttpPOST
这里是示例代码:
DefaultHttpClient client = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(<"your url for each request">);
httpPost.setHeader("<header-name>", "<header-value>");
HttpReponse httpResponse = client.execute(httpPost);
//here omit getting content-type and encoding
InputStream reponseInputStream = httpReponse.getEntity().getContent();
然后你可以responseInputStream
把return WebResourceResponse(<content-type>, <encoding>, reponseInputStream)
shouldInterceptRequest(Webview,url)
如果您有任何不需要添加更多标头的请求,只需对其进行过滤return null
,shouldInterceptRequest(Webview,url)
其余的将完成。
希望这能有所帮助。
于 2013-08-23T15:17:12.717 回答