4

WebViewClient ですべての HTTP リクエストを傍受し、独自のリクエストを作成したいと考えています。私が抱えている問題は、gzip された応答を処理することです。

動作するメソッド (たとえば、 AndroidHttpClient.getUngzippedContent(entity) や GZIPInputStream(entity.getResponse()) など) を提案するいくつかの異なる投稿がありますが、これらに対して WebResourceResponses を返すと、ページが空白で読み込まれます。これは、html が gzip されているためだと思いますが、それが適切に処理されないため、ページの残りの部分は要求されません。

すべての HTTP リクエストを単純にインターセプトして WebResourceResponse を返すための 100% 機能するメソッドを持っている人はいますか? 私は現在、gzip されていないものに対してこれを行うことができますが、gzip された応答に対しては、ページが適切に読み込まれるように null を返します (つまり、要求が傍受されず、2 回行われることを意味します)。

正しい方向への助けや一歩をいただければ幸いです。これはおそらくそれほど難しいことではないと思いますが、私は完全に困惑しています。

4

1 に答える 1

0

リソースのリクエスト中は Accept ヘッダーを避けてください。リクエスト中にgzipデータを受け入れない場合、サーバーは完全なデータを送信します。

于 2015-05-08T13:55:21.070 に答える