Я пишу веб-приложение Spring 5, и мое требование - получить форму с кодировкой urlen и в ответ отправить обратно кодированный ответ обратно
Это код функции маршрутизатора
@Configuration
public class AppRoute {
@Bean
public RouterFunction<ServerResponse> route(FormHandler formHandler) {
return RouterFunctions.route()
// .GET("/form", formHandler::sampleForm)
// .POST("/form", accept(MediaType.APPLICATION_FORM_URLENCODED), formHandler::displayFormData)
.POST("/formnew", accept(MediaType.APPLICATION_FORM_URLENCODED).and(contentType(MediaType.APPLICATION_FORM_URLENCODED)), formHandler::newForm)
.build();
}
}
и вот мой код обработчика
public Mono<ServerResponse> newForm(ServerRequest request) {
Mono<MultiValueMap<String, String>> formData = request.formData();
MultiValueMap<String, String> newFormData = new LinkedMultiValueMap<String, String>();
formData.subscribe(p -> newFormData.putAll(p));
newFormData.add("status", "success");
return ServerResponse.ok().contentType(MediaType.APPLICATION_FORM_URLENCODED)
.body(fromObject(newFormData));
}
Вот ошибка, которую я получаю
2020-04-07 02: 37: 33.329 DEBUG 38688 --- [ctor-http-nio-3] org.springframework.web.HttpLogging: [07467aa5] Разрешено [UnsupportedMediaTypeException: тип содержимого 'application / x- www-form-urlencoded' не поддерживается для bodyType = org.springframework.util.LinkedMultiValueMap] для HTTP POST / 101 * * * * * * * *
В чем проблема здесь. Я не мог найти способ написать ответ, закодированный в URL. Кто-нибудь может указать, в чем проблема.