HttpClientを使用したカスタムHTTPヘッダー
1. 概要
このチュートリアルでは、HttpClientを使用してカスタムヘッダーを設定する方法を見ていきます。
より深くlearn other cool things you can do with the HttpClientを掘り下げたい場合は、the main HttpClient tutorialに進んでください。
参考文献:
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にあります。