本篇主要讲解RestTemplate
的基本使用,它是Spring
提供的用来访问Rest服务的客户端,RestTmplate
提供了很多便捷的方法,可以大大提供开发效率,本篇只涉及基本使用,内部原理后续再展开。
RestTemplate简述
RestTemplate
是Spring
提供的用于发送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 逐一绑上去的