Проблема чтения данных с сайта - PullRequest
0 голосов
/ 23 ноября 2010

Пишу приложение, которое разбирает данные с бортов на сайтах аэропортов - Шереметьево (http://svo.aero/timetable/today/) и Домодедово (http://www.domodedovo.ru/ru/main/airindicator/flightnew/).

)

Я создаю объект URL со ссылкой на сайт. Далее я вызываю метод openStream. После этого этот поток используется с парсером HTMLEditorKit.

С Домодедово это работает довольно хорошо, но с программой аэропорта Шереметьево ведет себя странно. Во-первых, происходит определенное количество запусков приложения - поток содержит символы в неизвестной кодировке, а длина текста явно меньше, чем содержимое реальной страницы. Затем происходит неожиданное - несколько успешных запусков, возвращение нужных данных - и снова серия неудач. От чего это зависит? Я не могу отследить это.

Я пытался отправлять определенные http-заголовки через URLConnection, надеясь, что все в них, как и в браузере, все открывается нормально. Но это не помогло. Ситуация не изменилась.

В чем может быть проблема?

* * 1012 P.S. Мой английский не очень хороший, извините.

1 Ответ

0 голосов
/ 24 ноября 2010

Проблема решена.

Все это связано с тем, что сервер сжимает данные при отправке их в приложение.

Заголовок 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.

Может быть, кто-то найдет всю эту информацию полезной для себя.

...