0

2つの桟橋サーバー(Eclipse-Googleプラグイン)からRSSフィードを読み取って解析しようとしています。1つはApp Engine SDKが有効になっていて、もう1つは有効になっていません。1. App Engineを有効にしてJettyの実行をテストすると、正常に動作します。2. App Engineを有効にせずにJettyサーバーで同じコードを使用すると、次のメッセージが表示されます(受信したテキストが空であるため)。

javax.xml.stream.XMLStreamException:[row、col]:[1,1]でのParseErrorメッセージ:ファイルの終わりが早すぎます。

入力ストリームの読み取りが早すぎるかどうかコードを検索しました(入力を読み取るために新しいURL(host)とurl.openStream()を使用します)が、コードは問題ありません(そうでない場合はおそらく動作しませんでした)最初のケース)。

tcpdump(-s 1024 -l -A dst host.com -i wlan0)を使用して、ヘッダーを調べました。

  1. 最初のケース:

    GET / rss / ... HTTP / 1.1

    ホスト:www.host.com

    接続:Keep-Alive

    クッキー:environment = a%3A2%3A%7Bs%3A4%3A%22skin%22%3Bs%3A7%3A%22default%22%3Bs%3A4%3A%22lang%22%3Bs%3A5%3A%22ro_RO%22% 3B%7D; isPC = 1

    Cookie2:$ Version = 1

  2. 2番目のケース:

    GET / rss / ... HTTP / 1.1

    キャッシュ制御:キャッシュなし

    プラグマ:キャッシュなし

    ユーザーエージェント:Java / 1.6.0_39

    ホスト:www.host.com

    受け入れる:text / html、image / gif、image / jpeg、*; q = .2、/ ; q = .2

    接続:キープアライブ

それらのヘッダーが問題になる可能性がありますか?まったく同じヘッダーを設定する方法はありますか?そしてそれは問題を解決しますか?

4

1 に答える 1

0

問題はUser-Agentヘッダーにあると思われます。これにより、一部のサーバーが一部の値(私の場合はJav / 1.6.0_39など)に対して空のコンテンツを送信するように決定されました。User-Agentを空の文字列に設定しましたが、応答は正常です。

于 2013-03-25T08:14:37.163 に答える