@RequestBody 和@RequestParam 的 RestTemplate
RestTemplate for @RequestBody and @RequestParam
我正在尝试使用 RestTemplate 来调用 POST api :
RequestorParam test = new RequestorParam();
test.setScopeMcg("MCG");
test.setSituatedDealIds(situatedDealIds);
String url = "http://localhost:" + serverPort + "/retrieveAttributes";
ResponseEntity<SituatedDeals> response = restTemplate.postForEntity(url, test, SituatedDeals.class);
控制器的代码就像;
@PostMapping(value = "/retrieveAttributes", produces = "application/json")
@ResponseBody
@Duration
public SituatedDeals retrieveAttributes(
@RequestParam String scopeMcg,
@RequestBody SituatedDealIds situatedDealIds
) {
log.info("success")
}
我收到了错误的请求,有人可以帮忙吗?
根据您的控制器代码,您实际上没有返回任何 SituatedDeals
类型的响应实体,只是将其记录为成功。这可能是 null
对象响应的原因。
scopeMcg
是一个 RequestParameter,因此您应该以请求参数格式传递它,即 http://localhost:8080/retrieveAttributes?scopeMcg=MCG
参考:Spring Request Param
您的 test
对象是您的 post 请求的实际负载,它应该是 SituatedDealIds 对象类型。
参考:Rest-Template post for Entity
我正在尝试使用 RestTemplate 来调用 POST api :
RequestorParam test = new RequestorParam();
test.setScopeMcg("MCG");
test.setSituatedDealIds(situatedDealIds);
String url = "http://localhost:" + serverPort + "/retrieveAttributes";
ResponseEntity<SituatedDeals> response = restTemplate.postForEntity(url, test, SituatedDeals.class);
控制器的代码就像;
@PostMapping(value = "/retrieveAttributes", produces = "application/json")
@ResponseBody
@Duration
public SituatedDeals retrieveAttributes(
@RequestParam String scopeMcg,
@RequestBody SituatedDealIds situatedDealIds
) {
log.info("success")
}
我收到了错误的请求,有人可以帮忙吗?
根据您的控制器代码,您实际上没有返回任何
SituatedDeals
类型的响应实体,只是将其记录为成功。这可能是null
对象响应的原因。scopeMcg
是一个 RequestParameter,因此您应该以请求参数格式传递它,即http://localhost:8080/retrieveAttributes?scopeMcg=MCG
参考:Spring Request Param您的
test
对象是您的 post 请求的实际负载,它应该是 SituatedDealIds 对象类型。 参考:Rest-Template post for Entity