1. Обзор
В этом руководстве мы собираемся изучить WebClient
— реактивный веб-клиент, представленный в Spring 5.
Мы также рассмотрим WebTestClient,
WebClient ,
предназначенный для использования в тестах.
Обычно при выполнении HTTP-запросов в наших приложениях мы выполняем эти вызовы последовательно. Однако бывают случаи, когда мы можем захотеть выполнить эти запросы одновременно.
Например, мы можем захотеть сделать это при извлечении данных из нескольких источников или когда мы просто хотим повысить производительность нашего приложения.
В этом кратком руководстве мы рассмотрим несколько подходов, чтобы увидеть, как мы можем добиться этого, выполняя параллельные вызовы службы с помощью Spring Reactive WebClient
.
Spring 5 включает Spring WebFlux, который обеспечивает поддержку реактивного программирования для веб-приложений.
В этом руководстве мы создадим небольшое реактивное приложение REST, используя реактивные веб-компоненты RestController
и WebClient.
Мы также рассмотрим, как защитить наши реактивные конечные точки с помощью Spring Security.
Feign абстрагирует вызовы HTTP и делает их декларативными. Таким образом, Feign скрывает детали более низкого уровня, такие как управление HTTP-соединением, жестко заданные URL-адреса и другой шаблонный код. Существенным преимуществом использования клиентов Feign является простота вызовов HTTP и сокращение объема кода. Как правило, мы используем Feign для REST API -типа application/json
media type. Однако клиенты Feign хорошо работают с другими типами мультимедиа, такими как text/xml
, составные запросы и т. д.
В этом руководстве мы узнаем, как вызывать веб-службу на основе SOAP ( text/xml
) с помощью Feign.
Предположим, что есть веб-служба SOAP с двумя операциями — getUser
и createUser
.
В этом руководстве мы покажем, как включить ведение журнала в HttpClient Apache . Кроме того, мы объясним, как ведение журнала реализовано внутри библиотеки. После этого мы покажем, как включить различные уровни ведения журнала.
Библиотека HttpClient предоставляет эффективную, актуальную и многофункциональную реализацию клиентского сайта протокола HTTP.
Действительно, как библиотека, HttpClient не требует обязательной реализации ведения журнала . С этой целью версия 4.5 предоставляет журналы с помощью Commons Logging . Точно так же последняя версия 5.1 использует фасад ведения журнала, предоставленный SLF4J . Обе версии используют схему иерархии для сопоставления регистраторов с их конфигурациями.
В этой статье мы покажем, как расширить URL-адреса с помощью HttpClient
.
Простой пример: исходный URL-адрес был сокращен один раз — такой службой, как bit.ly.
Более сложный пример: URL-адрес был сокращен несколько раз разными службами, и требуется несколько проходов, чтобы получить исходный полный URL-адрес.
Если вы хотите копнуть глубже и узнать о других интересных вещах, которые можно делать с помощью HttpClient, — перейдите к основному руководству по HttpClient .
Apache HttpClient — это низкоуровневая облегченная клиентская HTTP-библиотека для связи с HTTP-серверами. В этом руководстве мы узнаем, как настроить поддерживаемые версии безопасности транспортного уровня (TLS) при использовании HttpClient . Мы начнем с обзора того, как работает согласование версии TLS между клиентом и сервером. После этого мы рассмотрим три различных способа настройки поддерживаемых версий TLS при использовании HttpClient .
TLS — это интернет-протокол, обеспечивающий безопасную и надежную связь между двумя сторонами. Он инкапсулирует протоколы прикладного уровня, такие как HTTP. Протокол TLS несколько раз пересматривался с момента его первой публикации в 1999 году. Поэтому важно, чтобы клиент и сервер сначала договорились о том, какую версию TLS они будут использовать при установлении нового соединения. Версия TLS согласовывается после обмена приветственными сообщениями между клиентом и сервером:
Apache HttpClient — это популярная библиотека Java, предоставляющая эффективные и многофункциональные пакеты, реализующие на стороне клиента самые последние стандарты HTTP. Библиотека предназначена для расширения, обеспечивая при этом надежную поддержку базовых методов HTTP .
В этом руководстве мы рассмотрим дизайн Apache HttpClient API. Мы объясним разницу между HttpClient
и CloseableHttpClient
. Кроме того, мы проверим, как создавать экземпляры CloseableHttpClient
с помощью HttpClients
или HttpClientBuilder
.
Наконец, мы порекомендуем, какой из упомянутых API мы должны использовать в нашем пользовательском коде. Кроме того, мы рассмотрим, какие классы API реализуют интерфейс Closeable
, что требует от нас закрытия их экземпляров для высвобождения ресурсов.
В этой статье мы рассмотрим расширенное использование библиотеки Apache HttpClient
.
Мы рассмотрим примеры добавления пользовательских заголовков к HTTP-запросам и увидим, как настроить клиент для авторизации и отправки запросов через прокси-сервер.
Мы будем использовать Wiremock для заглушки HTTP-сервера. Если вы хотите узнать больше о Wiremock, ознакомьтесь с этой статьей .
User-Agent