【问题标题】:How To Hit Post Rest Service Using Rest template如何使用 Rest 模板点击 Post Rest 服务
【发布时间】:2019-02-04 11:58:05
【问题描述】:

您好,我有一个休息端点 xyz.com/test/create,它期望内容类型 application/json 和内容是

{
    "name": "spring boot"       
}

body 中还有一些其他的字段有数组。

我在弹簧休息控制器中使用休息模板来达到上述端点,我也想传递数据。我不确定端点端使用什么域模型将 json 中的数据从客户端映射到服务器端。

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

【问题讨论】:

    标签: json spring-boot resttemplate


    【解决方案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's Jackson 序列化您收到的请求, 您的端点接收器将如下所示:

    @RequestMapping(value = "/rawTask", method = RequestMethod.POST)
    public AsyncTask newRawTask(@Valid @RequestBody dataTransferPOJO payload) throws Exception {
        return atrr.save(payload);
    }
    

    【讨论】:

      猜你喜欢
      • 2017-09-23
      • 1970-01-01
      • 1970-01-01
      • 2017-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多