HttpClientを使ったカスタムHTTPヘッダ

HttpClientを使用したカスタムHTTPヘッダー

1. 概要

このチュートリアルでは、HttpClientを使用してカスタムヘッダーを設定する方法を見ていきます。

より深くlearn other cool things you can do with the HttpClientを掘り下げたい場合は、the main HttpClient tutorialに進んでください。

参考文献:

Javaで簡単なHTTPリクエストを行う

Javaの組み込みHttpUrlConnectionを使用して基本的なHTTPリクエストを実行するための迅速で実用的なガイド。

高度なHttpClient設定

高度なユースケース向けのHttpClient構成。

Java 9および11での新しいHTTPクライアントの探索

多くの柔軟性と強力な機能を提供する新しいJava9のHttpClientAPIをご覧ください。

2. リクエストに応じてヘッダーを設定–4.3以降

HttpClient 4.3では、リクエストを作成する新しい方法であるRequestBuilderが導入されました。 ヘッダーを設定するには、we’ll use the setHeader method – on the builder:

HttpClient client = HttpClients.custom().build();
HttpUriRequest request = RequestBuilder.get()
  .setUri(SAMPLE_URL)
  .setHeader(HttpHeaders.CONTENT_TYPE, "application/json")
  .build();
client.execute(request);

3. リクエストに応じてヘッダーを設定–4.3より前

HttpClientの4.3より前のバージョンでは、we can set any custom header on a request with a simple setHeader call on the request:

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(SAMPLE_URL);
request.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
client.execute(request);

ご覧のとおり、リクエストのContent-Typeをカスタム値(JSON)に直接設定しています。

4. クライアントにデフォルトヘッダーを設定する

すべてのリクエストにヘッダーを設定する代わりに、configure it as a default header on the Client自体を設定することもできます。

Header header = new BasicHeader(HttpHeaders.CONTENT_TYPE, "application/json");
List
headers = Lists.newArrayList(header); HttpClient client = HttpClients.custom().setDefaultHeaders(headers).build(); HttpUriRequest request = RequestBuilder.get().setUri(SAMPLE_URL).build(); client.execute(request);

これは、カスタムアプリケーションヘッダーなど、ヘッダーをすべてのリクエストで同じにする必要がある場合に非常に役立ちます。

5. 結論

この記事では、Apache HttpClientを介して送信される1つまたはすべての要求にHTTPヘッダーを追加する方法を説明しました。

これらすべての例とコードスニペットの実装は、the GitHub projectにあります。