Пользовательский заголовок HTTP с HttpClient
1. обзор
В этом руководстве мы рассмотрим, как установить собственный заголовок с помощью HttpClient.
Если хотите копнуть глубже иlearn other cool things you can do with the HttpClient - переходите кthe main HttpClient tutorial.
Дальнейшее чтение:
Сделайте простой HTTP-запрос в Java
Краткое и практическое руководство по выполнению основных HTTP-запросов с использованием встроенного в Java HttpUrlConnection.
Расширенная настройка HttpClient
Конфигурации HttpClient для расширенных вариантов использования.
Изучение нового HTTP-клиента в Java 9 и 11
Изучите новый API HttpClient в Java 9, который обеспечивает большую гибкость и мощные функции.
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.