如何使用Rest模板点击Post Rest Service

时间:2019-02-04 11:58:05

标签: json spring-boot resttemplate

您好,我有一个休息端点xyz.com/test/create,它希望内容类型为application / json并且内容为

{
    "name": "spring boot"       
}

具有数组的主体中还有其他一些字段。

我正在spring rest控制器中使用rest模板来达到上述端点,我也想传递数据。我不确定端点端使用哪种域模型将json中的数据从客户端映射到服务器端。

如何使用rest模板将上述数据击中端点,并且Content-Type为application-json。

1 个答案:

答案 0 :(得分:1)

创建数据

为了创建要发送的数据,请使用诸如Map或普通POJO之类的数据类型。 一张地图看起来像:

com.google.common.collect.ImmutableMap.of("name","spring boot")

或者是POJO:

public class dataTransferPOJO {

    private String name;

    //... NoArgsConstructor, getters, setters ...//
}

使用RestTemplate发送数据

确保您了解Spring Boot的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);
}