java - RestTemplate.postForObject() 有效,但 exchange() 无效
问题描述
我有一个应用程序将 api 调用发送到另一个应用程序,使用以下代码:
objreq.setReq(request);
HttpEntity<Request> entity = new HttpEntity<Request>(objreq, headers);
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, entity, String.class);
其中 headers 当然包含 application/json。
问题是,objreq 设置正确,但是,当它调用另一个 api 时:
@PostMapping
public ResponseEntity<Response> insertRequest(
@RequestBody @Valid Request request) {
requestService.insertRequest(request);
return ResponseEntity.ok(new ResponseSuccess<>());
}
所有字段均为空。这真的很烦人,因为请求中的字段设置正确,但响应中的所有内容都是空的。
注意:此代码工作正常
restTemplate.postForObject(url, request, String.class);
想知道为什么交换不起作用,不幸的是我对 RestTemplate 没有太多经验,所以不确定问题是否在这里。非常感谢
解决方案
根据这个文档,ok(T body)
从参数构建响应体T body
,你传递了一个ResponseSuccess
对象,这可能是这里的问题,我不知道类里面有什么ResponseSuccess
(找不到这个类的文档,所以我可以'不确定问题可能出在这门课的哪个位置)但我会在那里寻找问题。
推荐阅读
- java - servlet 向另一台服务器发送 http post 请求的正确方法?
- express - 使用 Node.js / Express 是否可以从 IIFE 内部执行 next() 错误并推进到错误处理中间件?
- json - 如何使用 JQ 打印 JSON 文件的路径和键值
- sprite-kit - Sprite Kit:等待调用函数直到满足条件 X
- flutter - 如何向 Bloc 提供范围参数?带参数的参数化集团或事件?
- flutter - 如何在第一个屏幕之前调用 sharedprefrence
- python - Python 正在检测正确的语法错误
- r - 右 | pivot_wider() | 如何处理“values_from”列中的重复项
- android - 将网格视图滚动与其他片段集成
- typescript - 如何使用角度 7 从对象数组中返回 userPass 的值?