HttpClient 4 - リクエストをキャンセル

HttpClient 4 –リクエストのキャンセル

1. 概要

このクイックチュートリアルは、cancel a HTTP Request with the Apache HttpClient 4の方法を示しています。

これは、長時間実行される可能性のある要求、または帯域幅と接続を不必要に消費する大きなダウンロードファイルに特に役立ちます。

深く掘り下げて、HttpClientでできる他のクールなことを学びたい場合は、the main HttpClient tutorialに進んでください。

2. GETリクエストを中止する

進行中のリクエストを中止するには、クライアントは単に以下を使用できます。

request.abort();

これにより、クライアントが接続を解放するためにリクエストの本文全体を消費する必要がなくなります。

@Test
public void whenRequestIsCanceled_thenCorrect()
  throws ClientProtocolException, IOException {
    HttpClient instance = HttpClients.custom().build();
    HttpGet request = new HttpGet(SAMPLE_URL);
    HttpResponse response = instance.execute(request);

    try {
        System.out.println(response.getStatusLine());
        request.abort();
    } finally {
        response.close();
    }
}

3. 結論

この記事では、HTTPクライアントで進行中のリクエストを中止する方法を説明しました。 長時間実行されるリクエストを停止する別のオプションは、リクエストがtime outになることを確認する場合です。

これらすべての例とコードスニペットcan be found in my github projectの実装–これはEclipseベースのプロジェクトであるため、そのままインポートして実行するのは簡単です。