2

httpでリクエストを送信しています。接続タイムアウトと読み取りタイムアウトは30000msに設定されています。回答を受け取った後の最大時間はどのくらいですか? 読み取り+接続タイムアウトを組み合わせていますか? 私の疑問は、接続を取得した後、または接続を確立しようとしたときから、読み取りタイムアウトがいつ始まるかです。 設定された接続がタイムアウトした後でも、接続が確立されますか?http応答を取得する最大遅延はいくらですか?

2つのタイムアウトの違いはわかりますが、それが考慮されているときはわかりません。

con.setConnectTimeout(30000); 
con.setReadTimeout(30000); 
+1

@DimaSanタイムアウトが両方とも正確に現れた場合、他の質問には言及しません。 2つのタイムアウトの違いを説明しています –

答えて

1

connectTimeoutreadConnectionTimeoutは、あなたがデータパケットの間待つことができますどのくらい言いながら、接続がを確立した後(連続した読み取り)、接続establishementが取ることができる時間を制限します。

まず、接続を確立しようとし、そのプロセスをconnectTimeoutに限定します。接続を確立したら、readConnectionTimeoutを使用して受信データを読み取ります。

は、データ読み取り操作の全体的な時間を制限しません。読み込み時間の合計がもうなくなる可能性があります。packets_to_be_send * readConnectionTimeout

+0

'connectTimeout'は 'packets_to_be_send * readConnectionTimeout'よりも大きいべきですか?接続が確立されると、接続タイムアウトが表示されますか? –

+0

これらのタイムアウトは相互に排他的です(最初は接続を確立しようとします(TCP制御))ので、ここでは 'connectionTimeout'が使用されます。接続が確立されると、実際のアプリケーションデータが読み込まれます。これは 'readConnectionsTimeout'が入る場所です。接続が既に確立されているので、' connectTimeout'は意味を持ちません。 – Antoniossss

+1

@DarshanGopalRここで(編集した)コメントで問題を特定しました - いいえ、接続が確立された後、 'connectionTimeout'はもう考慮されません。 – Antoniossss

関連する問題