Skip to content

本篇主要讲解RestTemplate的基本使用,它是Spring提供的用来访问Rest服务的客户端,RestTmplate提供了很多便捷的方法,可以大大提供开发效率,本篇只涉及基本使用,内部原理后续再展开。

RestTemplate简述

RestTemplateSpring提供的用于发送HTTP请求的客户端工具,它遵循Restful原则,RestTemplate默认依赖JDK的Http连接工具HttpUrlConnection,你也可以替换不同的源,比如OkHttp、Apache HttpComponents 等等。

Get请求

getForObject()

首先来看Get请求 RestTemplate提供了2种方法其中一种就是 getForObject()方法

java
public <T> T getForObject(String url, Class<T> responseType, Object... uriVariables){}     public <T> T getForObject(String url, Class<T> responseType, Map<String, ?> uriVariables)   public <T> T getForObject(URI url, Class<T> responseType)

不带参数:

客户端

java
//  客户端
String url = "http://localhost:9999/testGetMethod";
String str = restTemplate.getForObject(url , String.class);
java
//  服务端
@RequestMapping("/testGetMethod")
public String testGetMethod(){
    return "hello";
}

带参数按{}绑定参数:

java
//客户端
String url = "http://localhost:9999/testGetMethod/{talk}/{name}"; 
//或者testGetMethod/{1}/{2} {里面的参数无所谓,只是根据下面的Object... uriVariables 逐一绑定到上面{} 中去的}
String str = restTemplate.getForObject(url , String.class,"hello" , "johnny");
java
// 服务端
@RequestMapping("/testGetMethod/{talk}/{name}")
public String testGetMethod(@PathVariable("talk") String talk ,@PathVariable("name") String name){
    log.info("【{} : {}】" , talk , name);
    return "hello";
}

说明:{} http://localhost:9999/testGetMethod/{talk}/{name} 里面的参数名称无所谓,只是根据下面的Object... uriVariables 逐一绑上去的

带参数的Get请求(按Map的key绑定{}参数)