猿问

Spring RestTemplate如何将POJO与application

当我尝试将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


jeck猫
浏览 1110回答 2
2回答

临摹微笑

可以使用FormHttpMessageConverter能够将数据转换MultiValueMap<String, String>为application/x-www-form-urlencoded媒体类型所需数据的数据。将以下配置添加到实现WebMvcConfigurer的类中。@Beanpublic&nbsp;FormHttpMessageConverter&nbsp;formHttpMessageConverter()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;MediaType&nbsp;mediaType&nbsp;=&nbsp;new&nbsp;MediaType("application",&nbsp;"x-www-form-urlencoded",&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Charset.forName("UTF-8")) &nbsp;&nbsp;&nbsp;&nbsp;FormHttpMessageConverter&nbsp;formHttpMessageConverter=&nbsp;new&nbsp;FormHttpMessageConverter(); &nbsp;&nbsp;&nbsp;&nbsp;formHttpMessageConverter.setSupportedMediaTypes(Collections.singletonList(mediaType)); &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;formHttpMessageConverter;}@Overridepublic&nbsp;void&nbsp;configureMessageConverters(List<HttpMessageConverter<?>>&nbsp;converters)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;converters.add(formHttpMessageConverter()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super.configureMessageConverters(converters);}
随时随地看视频慕课网APP

相关分类

Java
我要回答