5

以下のコードのように、HttpsURLConnectionを使用してサーバーにサービスリクエストを行っています。

URL url = new URL("service/url");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setConnectionTimeout(300000);
connection.setReadTimeout(300000);
parse (connection.getInputStream());

サービスに時間がかかる場合があるため、理想的にはタイムアウト例外を予期する必要がありますが、代わりにクライアントが再試行して同じ要求を再送信しています。あらゆる種類の再試行を明示的に無効にする方法はありますか?そして、設定されたタイムアウト方法が何か違いを生んでいるかどうかさえわかりません。

Java1.6を使用しています

更新
getInputStream()の代わりにconnect()とgetResponseCode()を試しましたが、動作は同じです。

URL url = new URL("service/url");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setConnectionTimeout(300000);
connection.setReadTimeout(300000);
connection.connect();
connection.getResponseCode();

これでも2つのリクエストを行っています。

UPDATEHttpClientは
問題を修正しました。HttpClientでは、再試行を明示的にfalseに設定できます

4

1 に答える 1

2

あなたは電話してはいけません、ただ電話openConnection()してください。connect()openConnection()

于 2012-09-11T08:42:48.960 に答える