RestTemplate中几种常见的请求方式
GET请求
第一种:getForEntity
getForEntity方法的返回值是一个ResponseEntity<T>
,ResponseEntity<T>
是Spring对HTTP请求响应的封装,包括了几个重要的元素,如响应码、contentType、contentLength、响应消息体等。
可以用一个数字做占位符,最后是一个可变长度的参数,来一一替换前面的占位符
@RequestMapping("/sayhello")
public String sayHello() {
ResponseEntity<String> responseEntity = restTemplate.getForEntity("http://HELLO-SERVICE/sayhello?name={1}", String.class, "张三");
return responseEntity.getBody();
}
可以前面使用name={name}这种形式,最后一个参数是一个map,map的key即为前边占位符的名字,map的value为参数值
@RequestMapping("/sayhello2")
public String sayHello2() {
Map<String, String> map = new HashMap<>();
map.put("name", "李四");
ResponseEntity<String> responseEntity = restTemplate.getForEntity("http://HELLO-SERVICE/sayhello?name={name}", String.class, map);
return responseEntity.getBody();
}
第二种:getForObject
getForObject函数实际上是对getForEntity函数的进一步封装,如果你只关注返回的消息体的内容,对其他信息都不关注,此时可以使用getForObject
@RequestMapping("/book2")
public Book book2() {
Book book = restTemplate.getForObject("http://HELLO-SERVICE/getbook1", Book.class);
return book;
}
POST请求
第一种:postForEntity
方法的第一参数表示要调用的服务的地址 第二个参数表示上传的参数 第三个参数表示返回的消息体的数据类型
@RequestMapping("/book3")
public Book book3() {
Book book = new Book();
book.setName("红楼梦");
ResponseEntity<Book> responseEntity = restTemplate.postForEntity("http://HELLO-SERVICE/getbook2", book, Book.class);
return responseEntity.getBody();
}
服务端
@RequestMapping(value = "/getbook2", method = RequestMethod.POST)
public Book book2(@RequestBody Book book) {
System.out.println(book.getName());
book.setPrice(33);
book.setAuthor("曹雪芹");
book.setPublisher("人民文学出版社");
return book;
}
第二种:postForObject
如果你只关注,返回的消息体,可以直接使用postForObject。用法和getForObject一致。
原文:https://blog.csdn.net/u012702547/article/details/77917939
版权声明:本文为博主原创文章,转载请附上博文链接!
最新文章
- CentOS6.3 编译安装LAMP(4):编译安装 PHP5.2.17
- robotium教材(一):robotium环境搭建
- Xocde4与Xcode3的模板比较
- javaWeb---文件上传(commons-FileUpload组件)
- JVM内存区域与内存溢出异常
- 如何把drawing图像转换成wpf控件的source
- 基于opencv的手写数字识别(MFC,HOG,SVM)
- UNIX时间与本地时间的转换
- Gdal 1.11.0 添加 Postgresql 9.1 sqlite3 支持
- NowCoder -- 牛客小白月赛10
- [No0000CF]想有一辈子花不完的钱?从了解“被动收入”开始吧
- VSFTP服务配置
- Python3 串口模块移植并使用。
- viewpager实现画廊(一屏多个Fragment)效果
- Linux 新建用户和组命令
- springboot2 统一返回结果
- PYTHON 常用API ***
- Android-GsonUtil工具类
- 可以在GitHub或者码云里 直接搜索 项目 比如 哔哩哔哩
- ios逆向工程-内部钩子(Method Swizzling)
热门文章
- Excel打开图片
- [译]Javascript中的闭包(closures)
- [译]Javascript在ASP NET中的运用
- 说“DPI”
- nodejs nodejs模块使用及简单的示例
- ubuntu - 官方简体中文wiki,有你想要的ubuntu的一切
- Wannafly挑战赛28B(DP,思维,字符串)
- 【转】tnsping不通,则需设置TNS_ADMIN环境变量
- loj #6077. 「2017 山东一轮集训 Day7」逆序对
- [bzoj2743][HEOI2012]采花(树状数组)