我一直試圖讓這個東西有效,但它仍然不正確。我檢查了這麼多帖子,並測試了很多不同的實現,我不知道現在看什麼...Jsoup和gzip的HTML內容(Android)
這是我的情況,我有一個小的php測試文件(gz.php)在我的服務器,看起來像這樣:
header("Content-Encoding: gzip");
print("\x1f\x8b\x08\x00\x00\x00\x00\x00");
$contents = gzcompress("Is it working?", 9);
print($contents);
這是最簡單的我可以做,它可以在任何網絡瀏覽器上正常工作。
現在我有使用Jsoup一個Android的活動,有這樣的代碼:
URL url = new URL("http://myServerAdress.com/gz.php");
doc = Jsoup.parse(url, 1000);
造成的「Jsoup.parse」行空EOFException類。
我到處讀過Jsoup應該解析gzip內容而不必做任何特別的事情,但很明顯,有一些缺失。
我已經嘗試了許多其他方式使用Jsoup.connect()。get()或InpuStream,GZipInputStream和DataInpuStream。我也嘗試了PHP中的gzDeflate()和gzencode()方法,但也沒有運氣。我甚至試圖不在PHP中聲明頭文件編碼,並在稍後嘗試縮小內容...但是它的效率和效果一樣聰明......
它必須是某種「愚蠢的」我失蹤了,但我只是不能說出什麼......任何人有一個想法?
(PS:我使用Jsoup 1.7.0,因此最新的一個截至目前)中的評價是gzcompress正在寫一個CRC,這是不正確的和不完整的指示
你可以把PHP腳本放在某個地方,以便我可以測試它嗎?另外,1.6.1是最新版本。 –
你是對的Jsoup版本...我的道歉(我知道我有最新的,而前一個是1.6.0 ...)。 – Trouiller
今天早上我在這個頁面上找到了解決方案:[gzcompress manual](http://www.php.net/manual/en/function.gzcompress.php#8753)。看起來這是自動寫入頁面的crc問題。通常的瀏覽器可以,但不是Jsoup。所以我用了一種方法來壓制它,並且「voilà」。問題解決了!謝謝你的努力;) – Trouiller