本文是精讲resttemplate第3篇,前篇的blog访问地址如下:
精讲resttemplate第1篇-在spring或非spring环境下如何使用精讲resttemplate第2篇-多种底层http客户端类库的切换
resttemplate可以发送http get请求,经常使用到的方法有两个:
getforobject()getforentity()
二者的主要区别在于,getforobject()返回值是http协议的响应体。getforentity()返回的是responentity,responentity是对http响应的封装,除了包含响应体,还包含http状态码、contenttype、contentlength、header等信息。
为了方便后续开发测试,首先介绍一个网站给大家。jsonplaceholder是一个提供免费的在线rest api的网站,我们在开发时可以使用它提供的ur就业推荐表 自我鉴定l地址测试下网络请求以及请求参数。或者当我们程序需要获取一些模拟数据、模拟图片时也可以使用它。
在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响应结果,
在spring boot环境下写一个单元测试用例,以java pojo对象接收响应结果信息
@testpublic void testpojo() { string url = "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 urid; private int id; private string title; private string body;}
访问http://jsonplaceholder.typicode.com/posts 可以获得json数组方式的请求结果
下一步就是我们该如何接收,使用方法也很简单。在spring boot环境下写一个单元测试用例,以数组的方式接收请求结果。
@testpublic void testarrays() { string url = "/d/file/titlepic/posts"; postdto[] postdtos = resttemplate.getforobject(url, postdto[].class); system.out.println("数组长度:" + postdtos.length);}
请求的结果被以数组的方式正确接收,输出如下:
数组长度:100
以下的几个请求都是在访问”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<string,object> map = new hashmap<>();map.put("type", "posts");map.put("id", 1);postdto postdto = resttemplate.getforobject(url, postdto.class, map);
上面的所有的getforobject请求传参方法,getforentity都可以使用,使用方法上也几乎是一致的,只是在返回结果接收的时候略有差别。使用responentity<t> responentity
来接收响应结果。用responentity.ge广西最好的大专tbody()获取响应体。响应体内容同getforobject方法返回结果一致。剩下的这些响应信息就是getforentity比getforobject多出来的内容。
httpstatus statuscode = responentity.getstatuscode();
获取整体的响应状态信息int statuscodevalue = responentity.getstatuscodevalue();
获取响应码值httpheaders headers = responentity.getheaders();
获取响应头等
@testpublic void testentitypojo() { string url = "http://jsonplaceholder.typicode.com/posts/5"; responentity<postdto> responentity = resttemplate.getforentity(url, postdto.class); postdto postdto = responentity.getbody(); // 获取响应体 system.out.println("http 响应body:" + postdto.tostring()); //以下是getforentity比getforobject多出来的内容 httpstatus statuscode = responentit小学生感恩老师的100个故事y.getstatuscode(); // 获取响应码 int statuscodevalue = responentity.getstatuscodevalue(); // 获取响应码值 httpheaders headers = responentity.getheaders(); // 获取响应头 system.out.println("http 响应状态:" + statuscode); system.out.println("http 响应状态码:" + statuscodevalue); system.out.println("http headers信息:" + headers);}
输出打印结果
觉得对您有帮助的话,帮我点赞、分享!您的支持是我不竭的创作动力! 。另外,笔者最近一段时间输出了如下的精品内容,期待您的关注。
《手摸手教你学spring boot2.0》《spring curity-jwt-oauth2一本通》《实战前后端分离rbac权限管理系统》《实战springcloud微服务从青铜到王者》《vue深入浅出系列》
本文发布于:2023-04-06 04:24:32,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/51ca682fae1bb21fd15447a154c10dcf.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:RestTemplate GET请求使用方法详解.doc
本文 PDF 下载地址:RestTemplate GET请求使用方法详解.pdf
留言与评论(共有 0 条评论) |