Добавьте заголовок к исходящему запросу фильтром в WebFlux - PullRequest
0 голосов
/ 14 мая 2019

Я использую Java Spring WebFlux для клиента и сервера и хочу настроить свой запрос от клиента к серверу, добавив в него настраиваемый заголовок.Я уже использую WebFilter для другой цели, но кажется, что он работает только для входящих запросов и ответов (например, запроса от FE и ответа на него).

1 Ответ

2 голосов
/ 14 мая 2019

Существует несколько способов указания пользовательских заголовков.

Если заголовки являются статическими, вы можете указать их при создании экземпляра WebClient, используя методы defaultHeader или defaultHeaders:

WebClient.builder().defaultHeader("headerName", "headerValue")
WebClient.builder().defaultHeaders(headers -> headers.add("h1", "hv1").add("h2", "hv2"))

Если заголовки являются динамическими, но генерация значения заголовка является общей для всех запросов, вы можете использовать ExchangeFilterFunction.ofRequestProcessor, настроенный во время WebClient создания экземпляра:

WebClient.builder()
    .filter(ExchangeFilterFunction.ofRequestProcessor(
        request -> request.headers().add("headerName", getHeaderValuePer(request)))
    )
    .build();

Если заголовки являются динамическими и специфичными для каждого использования WebClient, вы можете настроить заголовки для вызова:

webClient.get()
    .header("headerName", getHeaderValue(params))
    .retrieve();
...