RestTemplate如何进行POST请求呢?
下文笔者讲述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); }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。