2010-11-22 99 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。

可能有人会发现所有这些信息对他有帮助。