RestTemplate的用法

RestTemplate是由Spring提供的一个HTTP请求工具,在上文的案例中,开发者也可以不使用RestTemplate,使用Java自带的HttpUrlConnection或经典的网络访问框架HttpClient也可以完成上文的案例,只是在Spring项目中用RestTempplate更加方便。在传统的项目架构中,因为不涉及服务之间的调用,大家对RestTestplate的使用可能较少,因此,本文我们就先带领大家来学习下RestTemplate的不同用法,只有掌握了这些用法,才能在微服务调用中随心所欲地发送请求。

RestTemplate简介
RestTemplate是从Spring3.0开始支持地一个Http请求工具。它提供了常见地REST请求方案的模板,例如GET请求、POST请求、PUT请求、DELETE请求以及一些通用的请求的执行方法exchange以及excute.RestTemplate继承自InTerceptingHttpAccessor并且实现了RestOperations接口,其中RestOpreations接口定义了基本的RESTful操作,这些操作在RestTemplate中都得到了实现。

用法实战

在开始用下面的案例之前,我们需要先创建一个工程,命名为RestTemplate。和上文的项目结构一样,在RestTemplate中,我们也分别创建子项目eureka 、provider 以及 consumer ,将 provider 和 consumer 分别注册到 eureka 上面去。这个具体的步骤大家可以参考上篇文章,本文我就不赘述了,这是我们的准备工作。

GET请求
做好了准备工作,先来看使用 RestTemplate 发送 GET 请求。在 RestTemplate 中,和 GET 请求相关的方法有如下几个:

这里的方法一共有两类,getForEntity和getForObject,每一类有三个重载方法,下面我们分别予以介绍。

getForEntity

既然RestTemplate发送的是HTTP请求,那么在响应的时候必然有响应头。如果开发者需要或取响应头的话,那抹就需要使用getForEntity来发送HTTP请求,此时返回的对象是一个ResponseEntity的实例。这个实例中包含响应数据以及响应头。例如,在provider中提供一个HelloCtroller接口,HttpController接口中定义一个sayHello的方法,如下:

上一篇:『互联网架构』软件架构-掌握dubbo常规应用(下)


下一篇:Dubbo用了这么久,居然有这么多坑?