如何使用 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);
}