2010-11-22 142 views
0

我編寫了一個應用程序,用於解析機場站點上的板--Sheremetyevo(http://svo.aero/timetable/today/)和Domodedovo(http://www.domodedovo .RU/RU /主/ airindicator/flightnew /)。從網站讀取數據的問題

我使用網站的鏈接創建一個對象URL。接下來,我調用openStream方法。之後,這個流與解析器HTMLEditorKit一起使用。

與多莫傑多沃它工作得很好,但與謝列梅捷沃機場計劃行爲奇怪。首先,一定數量的應用程序啓動失敗 - 一個流包含未知編碼的符號,並且文本的長度明顯小於實際頁面的內容。然後意外發生 - 一些成功的運行,返回所需的數據 - 然後再一次,一系列的挫折。它取決於什麼?我無法追查這一點。

我試圖通過URLConnection發送特定的http-header,希望在瀏覽器中的所有內容都能正常打開。但它沒有幫助。情況並沒有改變。

可能是什麼問題?

P.S.我的英語不太好,很抱歉。

+0

它可能是字符編碼設置不正確。這可以解釋消息不一致的長度。 – pstanton 2010-11-23 00:37:58

回答

0

問題解決了。

所有這些都是由於服務器在將數據發送到應用程序時壓縮數據。

,從服務器附帶的HTTP標頭:

Request Version: HTTP/1.1 
Response Code: 200 
Date: Mon, 22 Nov 2010 23:43:53 GMT 
Server: Apache/1.3.37 (Unix) mod_deflate/1.0.21 mod_accel/1.0.34 mod_ssl/2.8.28 OpenSSL/0.9.8e rus/PL30.22 
Expires: Mon, 22 Nov 2010 23:44:44 GMT 
Content-Encoding: gzip <-- !!! 
Connection: close 
Transfer-Encoding: chunked 

所以,它可以是可以讀取數據,如果您將使用GZIPInputStream。

可能有人會發現所有這些信息對他有幫助。