2009-03-11 1 views
3

HttpURLConnectionからInputStreamを開くときに、一部のサーバーから予期しない結果がランダムに発生しています。これらのサーバーは接続を受け入れ、ソケットを開いたままにしてデータをストリームに返送することを許可しない「滞在可能」ヘッダーで返信するようです。HttpURLConnectionsがタイムアウトを無視し、返さない

このシナリオでは、マルチスレッドクローラが少し複雑になることがあります。なぜなら、接続が滞っても、スレッドを実行するスレッドは決して戻ってこないからです。いくつかのスレッドはまだ動作しています。

接続応答ヘッダーを読み取って、 "滞在中"の応答を識別し、ストリームを開こうとしないようにする方法はありますか?

答えて

1

を参照してください?

+0

私はそれを試し、私が得るものを見て、私はそれから特定の答えを評価することができます!どうも。 –

2

「タイムアウトを読み込む」に加えて、「読み込みタイムアウト」を設定しようとしましたか?

は私がここに欠けているのかわからないんだけど、あなたが単にgetHeaderField()を必要と私には思わhttp://java.sun.com/j2se/1.5.0/docs/api/java/net/URLConnection.html#setReadTimeout%28int%29

+0

ええと...両方のタイムアウトを設定しましたが、両方が無視されました。この問題は報告されたバグであることがわかりましたので、回避策を講じています。ヘッダーレスポンスを取得して隔離することができれば...ストリームを開かない。 =) –

+0

これはAndroid上で動作しました。 – yanchenko

+0

@Juan Manuel:報告されたバグへのリンクを投稿できますか? – talonx

関連する問題