我有一个使用以下代码将api调用发送到另一个应用程序的应用程序:
objreq.setReq(request);
HttpEntity<Request> entity = new HttpEntity<Request>(objreq, headers);
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, entity, String.class);
标头当然包含application / json。
问题是,但是在调用另一个api时,objreq设置正确:
@PostMapping
public ResponseEntity<Response> insertRequest(
@RequestBody @Valid Request request) {
requestService.insertRequest(request);
return ResponseEntity.ok(new ResponseSuccess<>());
}
所有字段均为空。这真令人讨厌,因为在请求中正确设置了字段,但在响应中所有内容都为空。
注意:此代码可以正常运行
restTemplate.postForObject(url, request, String.class);
想知道为什么交换不起作用,不幸的是我对RestTemplate没有太多经验,所以不确定问题是否在这里。非常感谢
答案 0 :(得分:0)
根据此documentation,ok(T body)
根据参数T body
构建响应主体,您正在传递ResponseSuccess
对象,这可能是这里的问题,我不知道ResponseSuccess
类中的内容(无法找到该类的文档,因此我无法确定问题可能在该类中的哪个位置),但我会在那里查找问题。