微服务——RestTemplate
GET请求:
第一种:getForEntity:
此方法返回的是ResponseEntity,该对象是Spring对HTTP请求响应的封装。
RestTemplate rt = new RestTemplate();
ResponseEntity<String> re = rt.getForEntity(uri,String.class);
String body = re.getBody();
或者:
ResponseEntity<User> re = rt.getForEntity(uri,User.class);
User body = re.getBody();
此方法提供了三个不同的重载实现:
1.getForEntity(String url,Class responseType,Object...urlVariables)
其中responseType是指返回的类型,urlVariables是get请求的参数,为数组类型,数组中的值顺序要和url中参数顺序一致。比如:
String url = http://USER-SERVICE/user.do?name={1}&age={2};
urlVariables=["jason",26];
2.getForEntity(String url,Class responseType,Map urlVariables)
map中的key对应url中参数的名字,value对应参数的值。比如:
String url = http://USER-SERVICE/user.do?param1={name} & param2={age};
map.put("name","jason");
map.put("age",26);
3.getForEntity(URI url,Class responseType)
该方法中使用URI代替了之前的url和urlVariables参数进行绑定。
第二种:getForObject:
此方法是对getForEntity的进一步的封装,实现请求直接返回包装好的对象内容。
RestTemplate rt = new RestTemplate();
String rs = rt.getForObject(uri,String.class);
或者:
User user = rt.getForObject(uri,User.class);
也提供了三个不同的重载实现,用法和上面的一样:
1.getForObject(String url,Class responseType,Object...urlVariables)
2.getForObject(String url,Class responseType,Map urlVariables)
3.getForObject(URI url,Class responseType)
POST请求:
第一种:postForEntity:
同GET请求一样,返回的是ResponseEntity<T>对象,其中T为请求相应的body的类型。
唯一不同的是request可以是普通对象,也可以是HttpEntity对象。
RestTemplate rt = new RestTemplate();
User user1 = new User("jason",26);
User user2 = rt.getForObject(url,user1,User.class);
也提供了三个不同的重载实现:
1.postForEntity(String url,Object request,Class responseType,Object...uriVariables);
2.postForEntity(String url,Object request,Class responseType,Map uriVariables);
3.postForEntity(URI url,Object request,Class responseType);
第二种:postForObject:
1.postForObject(String url,Object request,Class responseType,Object...uriVariables);
2.postForObject(String url,Object request,Class responseType,Map uriVariables);
3.postForObject(URI url,Object request,Class responseType);
第三种:postForLocation:
该方法实现了以POST请求提交资源,并返回新资源的URI对象,比如:
User user = new User("jason",26);
URI responseURI = restTemplate.postForLocation(url,user,);
三种重载方法:
1.postForLocation(String url,Object request,Object...uriVariables);
2.postForLocation(String url,Object request,Map uriVariables);
3.postForLocation(URI url,Object request);
PUT请求:
在RestTemaplate中,对PUT请求可以通过put方法进行调用。put方法返回值是void.
三种不同的重载方法:
put(String url,Object request,Object...urlVariable);
put(String url,Object request,Map urlVariable);
put(URI uri,Object request);
DELETE请求:
返回值为void.
delete(String url,Object...urlVariable);
delete(String url,Map urlVariable);
delete(URI uri,);
最新文章
- linux中字体的安装以及Terminal字体重叠问题解决
- SQL Server的镜像是基于物理块变化的复制 镜像Failover之后数据的预热问题
- ABP中使用Redis Cache(2)
- Linux - 变量
- IOS第15天(3,事件处理,手势处理)
- SQL SERVER 数据库查询表和字段信息语句
- 自己写算法---java的堆的非递归遍历
- Java实现二维码QRCode的编码和解码
- Android SDK下载和更新失败的解决方法!!!
- NOI2012 美食节
- UESTC_邱老师选妹子(二) 2015 UESTC Training for Dynamic Programming<;Problem I>;
- 【译】在Asp.Net中操作PDF – iTextSharp - 操作图片
- 使用 flow.ci 快速发布你的项目文档
- SimpleXML系列函数操作XML
- CodeChef - COUNTREL Count Relations
- ubuntu不能联网的问题
- react-create-app
- 剑指offer二十之包含min函数的栈
- 【最大流之Dinic算法】POJ1273 【 &; 当前弧优化 &; 】
- pf
热门文章
- Android 安全机制
- for循环将字典添加到列表中出现覆盖前面数据的问题
- F - Rails
- 网络通信协议五之IP协议详解
- db2 删除过期的日志和备份文件(转)
- redis数据持久化的两种方式
- hdu2609 How many【最小表示法】【Hash】
- Javascript扩展Date的prototype实现时间format函数 2017-06-29T09:10:00.000Z日期转换
- css学习_文本有关的样式属性、sublime快捷生成标签
- [No0000144]深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing)理解堆与栈1/4