洞察探索open banking如何通过小程序容器技术助力金融企业实现数据安全和数字化转型
1930
2022-10-20
RestTemplate GET请求使用方法详解
本文是精讲RestTemplate第3篇,前篇的blog访问地址如下:
精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用精讲RestTemplate第2篇-多种底层HTTP客户端类库的切换
RestTemplate可以发送HTTP GET请求,经常使用到的方法有两个:
getForObject()getForEntity()
二者的主要区别在于,getForObject()返回值是HTTP协议的响应体。getForEntity()返回的是ResponseEntity,ResponseEntity是对HTTP响应的封装,除了包含响应体,还包含HTTP状态码、contentType、contentLength、Header等信息。
为了方便后续开发测试,首先介绍一个网站给大家。jsONPlaceholder是一个提供免费的在线REST API的网站,我们在开发时可以使用它提供的url地址测试下网络请求以及请求参数。或者当我们程序需要获取一些模拟数据、模拟图片时也可以使用它。
一、 getForObject() 方法
1.1.以String的方式接受请求结果数据
在Spring Boot环境下写一个单元测试用例,以String类型接收响应结果信息
@SpringBootTestclass ResttemplateWithSpringApplicationTests { @Resource private RestTemplate restTemplate; @Test void testSimple() { String url = "http://jsonplaceholder.typicode.com/posts/1"; String str = restTemplate.getForObject(url, String.class); System.out.println(str); }}
getForObject第二个参数为返回值的类型,String.class以字符串的形式接受getForObject响应结果,
1.2.以POJO对象的方式接受结果数据
在Spring Boot环境下写一个单元测试用例,以java POJO对象接收响应结果信息
@Testpublic void testPoJO() { String urlvPFHln = "http://jsonplaceholder.typicode.com/posts/1"; PostDTO postDTO = restTemplate.getForObject(url, PostDTO.class); System.out.println(postDTO.toString());}
输出打印结果如下:
POJO的定义如下,根据JSON String的数据格式定义。
@Datapublic class PostDTO { private int userId; private int id; private String title; private String body;}
1.3.以数组的方式接收请求结果
访问http://jsonplaceholder.typicode.com/posts 可以获得JSON数组方式的请求结果
下一步就是我们该如何接收,使用方法也很简单。在Spring Boot环境下写一个单元测试用例,以数组的方式接收请求结果。
@Testpublic void testArrays() { String url = "http://jsonplaceholder.typicode.com/posts"; PostDTO[] postDTOs = restTemplate.getForObject(url, PostDTO[].class); System.out.println("数组长度:" + postDTOs.length);}
请求的结果被以数组的方式正确接收,输出如下:
数组长度:100
1.4.使用占位符号传参的几种方式
以下的几个请求都是在访问"http://jsonplaceholder.typicode.com/posts/1",只是使用了占位符语法,这样在业务使用上更加灵活。
使用占位符的形式传递参数:
String url = "http://jsonplaceholder.typicode.com/{1}/{2}";PostDTO postDTO = restTemplate.getForObject(url, PostDTO.class, "posts", 1);
另一种使用占位符的形式:
String url = "http://jsonplaceholder.typicode.com/{type}/{id}";String type = "posts";int id = 1;PostDTO postDTO = restTemplate.getForObject(url, PostDTO.class, type, id);
我们也可以使用 map 装载参数:
String url = "http://jsonplaceholder.typicode.com/{type}/{id}";Map
二、getForEntity()方法
上面的所有的getForObject请求传参方法,getForEntity都可以使用,使用方法上也几乎是一致的,只是在返回结果接收的时候略有差别。使用ResponseEntity
HttpStatus statusCode = responseEntity.getStatusCode();获取整体的响应状态信息int statusCodeValue = responseEntity.getStatusCodeValue(); 获取响应码值HttpHeaders headers = responseEntity.getHeaders();获取响应头等
@Testpublic void testEntityPoJo() { String url = "http://jsonplaceholder.typicode.com/posts/5"; ResponseEntity
输出打印结果
觉得对您有帮助的话,帮我点赞、分享!您的支持是我不竭的创作动力! 。另外,笔者最近一段时间输出了如下的精品内容,期待您的关注。
《手摸手教你学Spring Boot2.0》《Spring Security-JWT-OAuth2一本通》《实战前后端分离RBAC权限管理系统》《实战SpringCloud微服务从青铜到王者》《vue深入浅出系列》
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~