0

私は現在、テキストのみを含み、すべて同じ方法でフォーマットされている、非常によく似た多数の Web サイトにアクセスしようとしています。

このメソッドを呼び出す最初の 5 ~ 30 回は機能しますが、その後は null が返されます。エラーなし。文字列を取得できない理由はありますか?

少しテキストを挿入した後、ランダムに のように見え、文字列グラブの本文をスキップすることline = in.readLine()がわかりました。nullあまり使わないBufferedReaderので、それが問題かもしれません。ヒントや、これをトラブルシューティングできる方法があれば、大歓迎です。

public static String pullString(int id) throws IOException {

    String price;
    logError("Checkpoint 1");
    URL url = new URL("example.com");
    URLConnection con = url.openConnection();
    logError("Checkpoint 2");
    BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
    logError("Checkpoint 3");
    String line;

    while ((line = in.readLine()) != null) {
  //        ^ for some reason this becomes null, but on identical pages it works fine. 


              //Removed unneeded info


                return ---;
            } catch (NumberFormatException e) {
                logError("NumberFormatException");

                return null;
            }
        }
    }
    logError("left out the back");
    return null;
}
4

2 に答える 2

0

読み取りが完了する前に接続が切断される可能性があります。while ループ内では行のみを読み取り、接続を閉じてロジックをオフラインにすることをお勧めします。入力ストリームを直接操作して、文字列ではなくバイトを読み取ってから、オフラインに変換することもできます。

于 2012-09-05T08:43:19.147 に答える
0

BufferedReader とは何の関係もないと思います。

サーバーが無視しているエラー メッセージを返している可能性が高くなります。ヘッダーにエラーがないことを確認するために、返された内容を印刷することをお勧めします。

于 2012-09-05T08:23:34.463 に答える