当前位置: 首页 > 知识库问答 >
问题:

如何使用Rest模板访问Post Rest服务

陆甫
2023-03-14

嗨,我有一个restendpointxyz。com/test/create,其中预期的内容类型为application/json,内容为

{
    "name": "spring boot"       
}

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

我在Spring rest控制器中使用rest模板来访问上述endpoint,我还想传递数据。我不确定endpoint端使用什么域模型将json中的数据从客户端映射到服务器端。

如何使用rest模板使用上述数据命中上述endpoint,内容类型为application json。

共有1个答案

赵刚豪
2023-03-14

要创建要发送的数据,请使用数据类型,如Map或plain POJO。地图看起来像:

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

或者,POJO:

public class dataTransferPOJO {

    private String name;

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

使用RestTemboard发送数据:

确保您了解Spring Boot的RestTemplate,并使用POST请求访问endpoint:

...
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接收到的请求,您的endpoint接收器将如下所示:

@RequestMapping(value = "/rawTask", method = RequestMethod.POST)
public AsyncTask newRawTask(@Valid @RequestBody dataTransferPOJO payload) throws Exception {
    return atrr.save(payload);
}
 类似资料:
  • 问题内容: 谁能提供给我一个代码示例,以使用Spring Rest模板访问通过https保护的REST服务URL。 我有证书,用户名和密码。服务器端使用了基本身份验证,我想创建一个可以使用提供的证书,用户名和密码(如果需要)连接到该服务器的客户端。 问题答案:

  • 我怎么能访问变量我添加到模型中的Spring MVC内胸腺模板?我有以下控制器代码: 如何访问thymeleaf模板中的变量var1、var5、var6等?

  • 我无法获得足够的权限来使用我的应用程序访问Azure Key Vault(而不是通过用户登录)。以下是我的设置: 我已经给了我的名为“keyvault”的应用程序所有的许可。 我的应用程序注册了Azure Active Directory。我已经允许它进入密钥库:

  • 我有一项服务,我需要通过rest向外部服务器询问一些信息: 如何为getListofObjectsA()编写JUnit测试? 我尝试了以下方法: 然而,上面的代码不起作用,它表明为。如何更正测试以正确模拟restTemplate。交换?

  • 问题内容: 我正在一个项目中,我必须使用REST并使用Java来访问一组Google日历。 该程序位于私人非Google服务器上,定期(通过cron作业)连接到Google帐户,获取链接到该帐户的日历列表,获取每个日历的上个月活动,并返回包含所有内容的XML文件信息。该程序应该能够在没有任何用户输入的情况下执行和访问日历。目前,该项目指定将仅读取日历,而不修改日历(因此将仅进行GET / LIST

  • 问题内容: 我通过调用post方法使用Spring3.0 restTemplate使用json webservice。 我们的应用程序已部署在WAS服务器中,并尝试通过使用TLS1.0创建套接字连接来连接生产者。但是,现在生产者仅支持TLS1.1和TLS1.2。 如何强制执行restTempate以使用TLS1.1或TLS 1.2。 通常,对于apache httpclient代码,创建自定义Pr