当我尝试将POJO与MediaType.APPLICATION_FORM_URLENCODED一起使用时 ExampleRequest exampleRequest = exampleRequest();
exampleRequest.setId("id");
exampleRequest.setName("name");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
HttpEntity<ExampleRequest> exampleRequestEntity = new HttpEntity<>(exampleRequest, headers);
restTemplate.postForObject(url, exampleRequestEntity, String.class)我明白了:org.springframework.web.client.RestClientException: No HttpMessageConverter for [ExampleRequest] and content type
[application/x-www-form-urlencoded]有没有办法用POJO application/x-www-form-urlencoded代替MultiValueMap<String, String> map?
2 回答

临摹微笑
TA贡献1982条经验 获得超2个赞
可以使用FormHttpMessageConverter
能够将数据转换MultiValueMap<String, String>
为application/x-www-form-urlencoded
媒体类型所需数据的数据。将以下配置添加到实现WebMvcConfigurer的类中。
@Beanpublic FormHttpMessageConverter formHttpMessageConverter() { MediaType mediaType = new MediaType("application", "x-www-form-urlencoded", Charset.forName("UTF-8")) FormHttpMessageConverter formHttpMessageConverter= new FormHttpMessageConverter(); formHttpMessageConverter.setSupportedMediaTypes(Collections.singletonList(mediaType)); return formHttpMessageConverter;}@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters) { converters.add(formHttpMessageConverter()); super.configureMessageConverters(converters);}
添加回答
举报
0/150
提交
取消