Spring Webflux Webclient | Заголовки типов контента устанавливают проблему

Способ установки заголовка ниже:

import org.springframework.web.reactive.function.client.WebClient;

WebClient webClient = WebClient.create();
webClient.post().uri(url)
        .headers(httpHeaders -> httpHeaders.setAll(headersMap))
        .body(BodyInserters.fromFormData(HelperMethods.mapToMultiValueMap(body))).exchange();

Это работает для некоторых сервисов, но, когда я добавляю базу требований для пользовательских заголовков, я сталкиваюсь с проблемой.

Для настройки типа контента я добавил следующее в заголовках в headersMap(headersMap - это карта): ("Content-Type", "application/json")

Но это дает мне ошибку: "Строка заголовка HTTP ["Content-Type": "application/json"] не соответствует RFC 7230 и была проигнорирована"

Что может быть причиной этого? Я пытался отправить тип контента, как: ("тип контента", "приложение / JSON"), но ошибка та же.

Я не могу установить заголовок в запросе, используя ".contentType()", так как номер заголовка является переменной, которая устанавливается динамически в headersMap.

1 ответ

Решение

Вы отправляете данные формы (обычно Content-Type: multipart/form-data) с типом содержимого, указывающим на json - отправьте правильный JSON или измените заголовок, чтобы он соответствовал данным формы.

Другие вопросы по тегам