2011-06-01 37 views
0

我用下面的例子:http://www.devdaily.com/java/jwarehouse/commons-httpclient-4.0.3/httpclient/src/examples/org/apache/http/examples/client/ClientGZipContentCompression.java.shtml的Java:的HttpResponse頭永遠不會有「內容編碼」,但確實有「有所不同:接受編碼」

雖然增加「接受編碼:gzip」的頭部被預計會告訴服務器你可以收到gxip編碼,但它似乎沒有這樣工作。相反,服務器僅以「Vary:Accept-Encoding」進行響應。經過很長一段時間的谷歌搜索,我甚至無法真正瞭解「變化:接受編碼」的含義。爲什麼服務器沒有按照他們的要求迴應「Content-Encoding:gzip」?我錯過了什麼嗎?

編輯:例如,當在這個網站(http://www.gidnetwork.com/tools/gzip-test.php)上檢查www.yahoo.com時,它會拉入正確的標題(內容編碼一)。但是,當我通過Java代碼訪問該網站時,內容編碼標題不會顯示出來。這是爲什麼?

這裏是我使用打印頭在Java代碼:

 Header[] h = response.getAllHeaders(); 
     for (int x = 0; x < h.length; x++) 
      System.out.println(h[x]); 
+0

這些服務器是什麼? – bmargulies 2011-06-01 21:26:04

+1

您是否看到過'http:// www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44'? – Dirk 2011-06-01 21:44:22

回答

1

你的服務器可能沒有配置返回gzip'ped內容。

編輯:針對http://apache.org/,代碼的工作原理如上所述。該粘貼位於http://pastebin.com/Ajj4XBb1

+0

我只是使用HttpGet來嘗試各種不同的網址。 – joshholat 2011-06-01 21:52:53

+0

啊。顯示一些代碼。並參見http://stackoverflow.com/questions/1573391/android-http-communication-should-use-accept-encoding-gzip – Femi 2011-06-01 22:00:49

+0

我在帖子中包含的URL有我想要工作的代碼。它是開箱即用的示例代碼。另外,我已經在做你發佈的鏈接建議。問題是服務器不響應任何包含「gzip」的頭文件。 – joshholat 2011-06-01 22:07:56

相關問題