WebViewClient shouldInterceptRequest处理gzip压缩数据

时间:2012-06-20 00:06:22

标签: android gzip webviewclient

我想拦截WebViewClient中的所有HTTP请求并发出我自己的请求。我遇到的问题是处理gzipped响应。

有几个不同的帖子建议可以使用的方法(例如AndroidHttpClient.getUngzippedContent(entity)或GZIPInputStream(entity.getResponse())但是当我返回WebResourceResponses时,页面加载为空白。我认为这是因为html被gzip压缩,然后处理得不好,所以页面的其余部分甚至都没有得到请求。

有没有人有100%的工作方法来简单地拦截每个HTTP请求并返回一个WebResourceResponse?我现在能够为没有gzip的任何东西做这个,但是对于gzipped响应,我正在返回null(这意味着请求没有被截获,因此得到两次),以便页面正确加载。

非常感谢任何帮助或朝着正确方向迈出的一步。我认为这可能不是那么困难,但我完全难过了。

1 个答案:

答案 0 :(得分:0)

请求资源时尝试避免接受标头。如果您在请求时不接受gzip数据,服务器将向您发送完整的承诺数据。