Рубрики
Без рубрики

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

Как установить пользовательский заголовок для одного/всех запросов, отправленных через HttpClient 4.

Автор оригинала: Eugen Paraschiv.

1. Обзор

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

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

Дальнейшее чтение:

Сделайте простой HTTP-запрос на Java

Расширенная конфигурация HttpClient

Изучение нового HTTP-клиента на Java

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
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 .