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);
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


