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

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

1. обзор

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

Если хотите копнуть глубже иlearn other cool things you can do with the HttpClient - переходите кthe main HttpClient tutorial.

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

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

Краткое и практическое руководство по выполнению основных HTTP-запросов с использованием встроенного в Java HttpUrlConnection.

Read more

Расширенная настройка HttpClient

Конфигурации HttpClient для расширенных вариантов использования.

Read more

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

Изучите новый API HttpClient в Java 9, который обеспечивает большую гибкость и мощные функции.

Read more

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.3we 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. Заключение

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

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