如何使用 Rest 模板点击 Post Rest 服务
How To Hit Post Rest Service Using Rest template
嗨,我有一个休息端点 xyz。com/test/create 期望内容类型 application/json 并且内容是
{
"name": "spring boot"
}
body having array中还有一些其他字段。
我在 spring 休息控制器中使用休息模板来达到上述端点,我也想传递数据。我不确定端点端使用什么域模型将 json 中的数据从客户端映射到服务器端。
如何使用 rest 模板将上面的数据命中上面的端点并且 Content-Type 是 application-json。
创建数据
为了创建要发送的数据,请使用数据类型,例如 Map 或普通 POJO。
地图看起来像:
com.google.common.collect.ImmutableMap.of("name","spring boot")
或者 POJO:
public class dataTransferPOJO {
private String name;
//... NoArgsConstructor, getters, setters ...//
}
使用 RestTemplate 发送数据:
确保您了解 Spring 启动的 RestTemplate
,并使用 POST 请求到达端点:
...
dataTransferPOJO payload = new dataTransferPOJO();
HttpEntity<String> entity = new HttpEntity<String>(payload, headers);
HttpEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, entity, dataTransferPOJO.class);
...
接收数据
Spring Boot 将尝试使用 FasterXML 的 Jackson 序列化您收到的请求,
您的端点接收器将如下所示:
@RequestMapping(value = "/rawTask", method = RequestMethod.POST)
public AsyncTask newRawTask(@Valid @RequestBody dataTransferPOJO payload) throws Exception {
return atrr.save(payload);
}
嗨,我有一个休息端点 xyz。com/test/create 期望内容类型 application/json 并且内容是
{
"name": "spring boot"
}
body having array中还有一些其他字段。
我在 spring 休息控制器中使用休息模板来达到上述端点,我也想传递数据。我不确定端点端使用什么域模型将 json 中的数据从客户端映射到服务器端。
如何使用 rest 模板将上面的数据命中上面的端点并且 Content-Type 是 application-json。
创建数据
为了创建要发送的数据,请使用数据类型,例如 Map 或普通 POJO。 地图看起来像:
com.google.common.collect.ImmutableMap.of("name","spring boot")
或者 POJO:
public class dataTransferPOJO {
private String name;
//... NoArgsConstructor, getters, setters ...//
}
使用 RestTemplate 发送数据:
确保您了解 Spring 启动的 RestTemplate
,并使用 POST 请求到达端点:
...
dataTransferPOJO payload = new dataTransferPOJO();
HttpEntity<String> entity = new HttpEntity<String>(payload, headers);
HttpEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, entity, dataTransferPOJO.class);
...
接收数据
Spring Boot 将尝试使用 FasterXML 的 Jackson 序列化您收到的请求, 您的端点接收器将如下所示:
@RequestMapping(value = "/rawTask", method = RequestMethod.POST)
public AsyncTask newRawTask(@Valid @RequestBody dataTransferPOJO payload) throws Exception {
return atrr.save(payload);
}