- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个客户端来使用 RESTful 服务。我需要以键值对的形式发送请求,他们建议我为此使用 Map。我调用的 RESTful 服务只接受 JSON,我的客户端将使用 Java。它实际上将成为现有企业 EJB 项目的一部分。
我已经编写了一个客户端并且能够成功调用 RESTful 服务。事实上,如果我以字符串(JSON 格式)发送请求,我什至会收到回复。但我想避免这种将 Map 转换为 JSON 格式字符串然后在 Request 中发送出去的手动工作。
我已将 Content-Type 设置为 application/json 并创建了一个包含 KeyValue 对的 Map。
来自客户的代码片段:
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.add(MyConstants.JWT_AUTH_TOK, restUtil.getJWTToken());
restTemplate = new RestTemplate();
ModelReqVO modVO = new ModelReqVO();
Map<String, String> dataMap = new HashMap<String, String>();
//Setting key,value into datamap (e.g. "key1", "value1")
modVO.setDataMap(dataMap);
ResponseEntity<ModelRspnsVO> result = restTemplate.postForEntity(mySrvcFN, new HttpEntity(modVO, headers), ModelRspnsVO.class);
请求(ModelReqVO)类:
public class ModelReqVO {
private HashMap<String, String> dataMap;
ModelReqVO() {
this.dataMap = new HashMap<String, String>();
}
//getter and setter generated
}
这是我得到的异常-
RestClientException: Could not write request: no suitable HttpMessageConverter found for request type [com.mycomp.myproj.ModelReqVO] and content type [application/json].
我检查了我的 restTemplate 上的 HttpMessageConverters,我确实找到了 MappingJacksonHttpMessageConverter。在使用上述转换器的代码中是否还需要我做其他事情?
我在 Spring.io 论坛上找到了几个示例,但它们是关于需要 www/form 内容而不是 JSON 的服务的。令人惊讶的是,我没有找到任何有关使用特定转换器将 Map 作为 JSON 发送的详细信息。
注意:代码片段可能有编译错误,我已经从我的手机上输入了代码。出于安全原因,我不能在我编码的机器上使用互联网。
最佳答案
错误消息说找不到适合请求类型的HttpMessageConverter
,所以只需将MappingJackson2HttpMessageConverter
和MediaType
添加到RestTemplate
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
coverter.setSupportedMediaTypes(Arrays.asList(MediaType.TEXT_PLAIN, MediaType.APPLICATION_JSON);
restTemplate.getMessageConverters().add(0, converter)
关于java - HttpMessageConverter 异常 : RestClientException: Could not write request: no suitable HttpMessageConverter found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54656530/
我是一名优秀的程序员,十分优秀!