これは私がテストしているシナリオです。手順は次のとおりです。
- HttpClient(org.apache.commons.httpclient.HttpClient)3.1 のインスタンスを作成します
- インスタンスを使用して URL から応答を取得します ( http://www.example.com/submitData )
- 手順 2 で説明した URL をホストしているサーバーを停止します。
- URLを立ち上げる
- URLがアップするまでお待ちください
- 手順 1 で作成した HttpClient のインスタンスを使用して、URL ( http://www.example.com/getData )から応答を取得します。
エラーが表示されます - 接続のリセット。誰でも私が理解するのを手伝ってくれますか。
HttpClient で次のパラメーターを使用しました
httpClient.getParams().setParameter("http.socket.timeout", new Integer(0));
httpClient.getParams().setParameter("http.connection.stalecheck", new Boolean(true));
ピーターからのコメントの後に編集これは私がHttpClientを作成する方法です
HttpClient httpClient = new HttpClient();
AuthScope authScope = new AuthScope("www.example.com", 80, AuthScope.ANY_REALM);
Credentials defaultcreds = new UsernamePasswordCredentials("username", "pwd");
httpClient.getState().setCredentials(authScope, defaultcreds);
httpClient.getParams().setParameter("http.socket.timeout", new Integer(0));
httpClient.getParams().setParameter("http.connection.stalecheck", new Boolean(true));
接続を確立するには、次を使用します
GetMethod getMethod = new GetMethod("http://"+httpClient.getHostConfiguration().getHost()+"/getData");
int statusCode = httpClient.executeMethod(getMethod);
httpclient インスタンスでホスト名、ポート、および資格情報を保持する必要があります。
これは、「接続のリセット」という正確な実行メッセージです。
詳細 - Eclipse からテストを実行しています。テスト ケースをデバッグ モードで実行すると、この例外は発生しません。