RestTemplate如何进行POST请求呢?

戚薇 Spring 发布时间:2023-05-15 15:00:02 阅读数:8766 1
下文笔者讲述RestTemplate进行POST请求的方法及示例分享,如下所示

RestTemplate进行POST请求的实现思路

使用以下两个方法:
    postForObject()
    postForEntity()

这两个方法之间的区别:
    postForObject()返回值是HTTP协议的响应体
	postForEntity()返回的是ResponseEntity
ResponseEntity是对HTTP响应的封装
    除包含响应体
	 还包含HTTP状态码、contentType、contentLength、Header等信息

postForObject发送JSON格式请求

@SpringBootTest
class PostTests {

   @Resource
   private RestTemplate restTemplate;

   @Test
   void testSimple()  {
      // 请求地址
      String url = "https://java265.com";

      // 要发送的数据对象
      PostDTO postDTO = new PostDTO();
      postDTO.setUserId(110);
      postDTO.setTitle("zimug 发布文章");
      postDTO.setBody("zimug 发布文章 测试内容");

      // 发送post请求,并输出结果
      PostDTO result = restTemplate.postForObject(url, postDTO, PostDTO.class);
      System.out.println(result);
   }
}

postForObject模拟表单数据提交

使用postForObject模拟表单数据提交
  即:
 提交x-www-form-urlencoded格式的数据
@Test
public void testForm() {
   // 请求地址
   String url = "https://java265.com";

   // 请求头设置,x-www-form-urlencoded格式的数据
   HttpHeaders headers = new HttpHeaders();
   headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);

   //提交参数设置
   MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
   map.add("title", "我是java265");
   map.add("body", "这里是正文内容");

   // 组装请求体
   HttpEntity<MultiValueMap<String, String>> request =
               new HttpEntity<MultiValueMap<String, String>>(map, headers);

   // 发送post请求,并打印结果,以String类型接收响应结果JSON字符串
   String result = restTemplate.postForObject(url, request, String.class);
   System.out.println(result);
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/Spring/202305/6442.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者