Перейти к основному содержимому

Пользовательский заголовок HTTP с Apache HttpClient

· 2 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим, как установить собственный заголовок с помощью HttpClient.

Если вы хотите копнуть глубже и узнать о других интересных вещах, которые можно делать с помощью HttpClient, — перейдите к основному руководству по HttpClient .

2. Установить заголовок по запросу — 4.3 и выше

HttpClient 4.3 представил новый способ построения запросов — RequestBuilder . Чтобы установить заголовок, мы будем использовать метод setHeader в построителе:

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

В версиях до 4.3 HttpClient мы можем установить любой пользовательский заголовок в запросе с помощью простого вызова setHeader в запросе:

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

Как мы видим, мы устанавливаем Content-Type непосредственно в запросе на пользовательское значение — JSON.

4. Установите заголовок по умолчанию на клиенте

Вместо того, чтобы устанавливать заголовок для каждого запроса, мы также можем настроить его как заголовок по умолчанию для самого клиента :

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

Это чрезвычайно полезно, когда заголовок должен быть одинаковым для всех запросов, например, для пользовательского заголовка приложения.

5. Вывод

В этой статье показано, как добавить заголовок HTTP к одному или всем запросам, отправляемым через Apache HttpClient.

Реализацию всех этих примеров и фрагментов кода можно найти в проекте GitHub .