4

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

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

有没有人有一个 100% 的工作方法来简单地拦截每个 HTTP 请求并返回一个 WebResourceResponse?我目前能够对未压缩的任何内容执行此操作,但对于压缩响应我返回 null (这意味着请求没有被拦截,因此会被执行两次),以便页面正确加载。

任何帮助或朝着正确方向迈出的一步将不胜感激。我认为这可能并不难,但我完全被难住了。

4

1 回答 1

0

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

于 2015-05-08T13:55:21.070 回答