Проблема с веб-клиентом Spring Webflux Webclient | набором заголовков типа контента

#java #spring-boot #spring-webflux #spring-webclient

#java #spring-boot #spring-webflux #spring-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 и была проигнорирована»

Что может быть причиной этого? Я попытался отправить тип контента, подобный: («content-type», «application / json»), Но ошибка та же.

Я не могу установить заголовок в запросе с помощью «.ContentType()», так как номер заголовка является переменной, которая динамически устанавливается в headersMap.

Ответ №1:

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