【发布时间】:2020-04-07 09:40:31
【问题描述】:
我正在编写一个 spring 5 网络应用程序,我的要求是获取一个 urlencoded 表单并作为响应发送回 url 编码响应
这是路由器功能代码
@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 调试 38688 --- [ctor-http-nio-3] org.springframework.web.HttpLogging:[07467aa5] 已解决 [UnsupportedMediaTypeException: Content type 'application/x-www HTTP POST /formnew 的 bodyType=org.springframework.util.LinkedMultiValueMap] 不支持 -form-urlencoded'
这里有什么问题。我找不到任何方法来写回 url 编码的响应。 谁能指出问题所在。
【问题讨论】:
标签: spring-boot spring-webflux