2010-11-22 16 views
0

空港サイトのボードからデータを解析するアプリケーションを作成します.Sheremetyevo(http://svo.aero/timetable/today/)とDomodedovo(http://www.domodedovo .ru/ru/main/airindicator/flightnew /)。ウェブサイトからデータを読み取る際の問題

サイトのリンクを使用してオブジェクトURLを作成します。次に、メソッドopenStreamを呼び出します。その後、このストリームはパーサーHTMLEditorKitで使用されます。

Domodedovoではかなりうまく動作しますが、Sheremetyevo空港プログラムでは奇妙な動作をします。まず、アプリケーションの起動が失敗します。ストリームには未知のエンコーディングのシンボルが含まれており、テキストの長さは実際のページの内容よりもはるかに小さくなっています。それから予期せぬことが起こります - いくつかの成功した実行、希望のデータを返す - そして再び、一連の挫折。それは何に依存しますか?私はこれを追跡することはできません。

URLConnectionで特定のhttp-headersを送信しようとしましたが、ブラウザのすべてがうまく開くように、その中のすべてが期待されました。しかし、それは役に立たなかった。状況は変わっていない。

何が問題なのですか?

P.S.私の英語はあまり良くないので、すみません。

+0

文字エンコーディングが正しく設定されていない可能性があります。これはメッセージの不一致の長さを説明することができます。 – pstanton

答えて

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を使用します場合は、データを読み出すことが可能となることができます。

誰かがこの情報を自分自身にとって有益であると知っているかもしれません。

関連する問題