【发布时间】:2017-06-12 21:10:24
【问题描述】:
有一个外部服务叫做
http://externalServer:9000/pathServer/serviceCalled
此服务作为输入参数接收对象列表。
Request
[
{ "atr1" : "value" },
{ "atr1" : "value" },
{ "atr1" : "value" },
{ "atr1" : "value" }
]
在我的后端调用此服务,因为它不在我的域中。为此,我使用 Spring 的 RestTemplate。
我已经使用过这个,但是当我拨打电话时,它给了我一个 400 bad request 错误。
这是我的代码。
String jsonValue= "[{ \"atr1\" : \"value\" },{ \"atr1\" : \"value\" },{ \"atr1\" : \"value\" },{ \"atr1\" : \"value\" }]";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<>(jsonValue,headers);
String url = "http://externalServer:9000/pathServer/serviceCalled";
ResponseEntity<String> STRresponse = restTemplate.exchange(url, HttpMethod.POST, entity, String.class);
到 STResponse 的输出打印是
我知道这个请求是正确的,因为当我用邮递员发送它时它工作正常。
我做错了什么?
【问题讨论】:
-
我尝试但我收到一个错误 org.springframework.http.converter.HttpMessageNotReadableException: 无法读取文档: 无法反序列化 java.util.ArrayList 的实例 out of START_OBJECT token at [Source: java.util.ArrayList io.ByteArrayInputStream@7bb08eeb;行:1,列:1];嵌套异常是 com.fasterxml.jackson.databind.JsonMappingException:无法从 START_OBJECT 令牌中反序列化 java.util.ArrayList 的实例
-
您确实根据消息发布了一个对象,而不是列表
-
但服务收到一个列表,我无法更改它
标签: java json spring rest resttemplate