spring 之 RestTemplate 用法

1.开宗明义:

spring为了消除http请求里样板式的代码,对http请求进行了封装。这就是 RestTemplate 使命,相比Apache HTTP Client,更方便地 发送网络请求。

关于http请求不清楚的请阅读 :http详细讲解


2.概览:

RestTemplate定义了36个与REST资源交互的方法,其中11个是独立的方法,别的都是这些方法的重载。

这些方法涵盖了几乎所有的http动作,其中execute() 和 exchange() 提供了较底层的通用方法使用任意的http方法。


3.用法

这里有必要讲一下http请求传参问题,传参方式有以下几种:

1)问号传参,如:http://192.168.118.88:8033/workspace/myWorkspace.do?projectId=5#103

      问号传参, 服务器端是用@RequestParam 注解接收的 。

2)路径传参,如:http://192.168.118.111:7000/api/v1/orders/inspectionorder/consumer/{serialNo}     访问时需要用具体值替换{serialNo}  

      路径传参,服务器端是这样的:

3)参数放在请求体里,即body里。该方式不适用get请求

     请求体传参,服务端是用 @RequestBody 注解接收的。


a.发送get 请求,restTemplate的  getForObject()  方法:

            不带参数:

路径传参:


等同→   get请求:http://ip:port/api/v1/items/shopInfo/detail/{id} ,{id} 换成 id


问号传参:类似上面的不带参数,把参数拼接在url中即可。


b.发送post请求  restTemplate的  postForObject()  方法:

问号传参 和 路径传参是和get请求一样的方式,这里主要介绍一下 请求体传参

请求体传参:


参数是json格式的



参数是 form表单格式


c.restTemplate 的 exchange方法



4.总结

因公司用的是微服务架构,根据业务模块划分成了很多独立的服务,每个服务都是独立的项目,运行在独立的进程里,有独立的数据库。

接口按rest风格设计,服务之间通过轻量级的http网络协议相互访问,相互协作完成任务,所以服务之间的访问就显得比较频繁。

以上这些方法相互组合基本可以满足日常使用了,也是我自己的一个总结,以后再慢慢补充

参考《spring in action》 第四版  第16章











猜你喜欢

转载自blog.csdn.net/shog808/article/details/78123124
今日推荐