GET请求:数组
第一种:getForEntity:post
此方法返回的是ResponseEntity,该对象是Spring对HTTP请求响应的封装。url
RestTemplate rt = new RestTemplate();rest
ResponseEntity<String> re = rt.getForEntity(uri,String.class);
String body = re.getBody();对象
或者:资源
ResponseEntity<User> re = rt.getForEntity(uri,User.class);get
User body = re.getBody();it
此方法提供了三个不一样的重载实现:
1.getForEntity(String url,Class responseType,Object...urlVariables)io
其中responseType是指返回的类型,urlVariables是get请求的参数,为数组类型,数组中的值顺序要和url中参数顺序一致。好比:
String url = http://USER-SERVICE/user.do?name={1}&age={2};
urlVariables=["jason",26];class
2.getForEntity(String url,Class responseType,Map urlVariables)
map中的key对应url中参数的名字,value对应参数的值。好比:
String url = http://USER-SERVICE/user.do?param1={name} & param2={age};
map.put("name","jason");
map.put("age",26);
3.getForEntity(URI url,Class responseType)
该方法中使用URI代替了以前的url和urlVariables参数进行绑定。
第二种:getForObject:
此方法是对getForEntity的进一步的封装,实现请求直接返回包装好的对象内容。
RestTemplate rt = new RestTemplate();
String rs = rt.getForObject(uri,String.class);
或者:
User user = rt.getForObject(uri,User.class);
也提供了三个不一样的重载实现,用法和上面的同样:
1.getForObject(String url,Class responseType,Object...urlVariables)
2.getForObject(String url,Class responseType,Map urlVariables)
3.getForObject(URI url,Class responseType)
POST请求:
第一种:postForEntity:
同GET请求同样,返回的是ResponseEntity<T>对象,其中T为请求相应的body的类型。
惟一不一样的是request能够是普通对象,也能够是HttpEntity对象。
RestTemplate rt = new RestTemplate();
User user1 = new User("jason",26);
User user2 = rt.getForObject(url,user1,User.class);
也提供了三个不一样的重载实现:
1.postForEntity(String url,Object request,Class responseType,Object...uriVariables);
2.postForEntity(String url,Object request,Class responseType,Map uriVariables);
3.postForEntity(URI url,Object request,Class responseType);
第二种:postForObject:
1.postForObject(String url,Object request,Class responseType,Object...uriVariables);
2.postForObject(String url,Object request,Class responseType,Map uriVariables);
3.postForObject(URI url,Object request,Class responseType);
第三种:postForLocation:
该方法实现了以POST请求提交资源,并返回新资源的URI对象,好比:
User user = new User("jason",26);
URI responseURI = restTemplate.postForLocation(url,user,);
三种重载方法:
1.postForLocation(String url,Object request,Object...uriVariables);
2.postForLocation(String url,Object request,Map uriVariables);
3.postForLocation(URI url,Object request);
PUT请求:
在RestTemaplate中,对PUT请求能够经过put方法进行调用。put方法返回值是void.
三种不一样的重载方法:
put(String url,Object request,Object...urlVariable);
put(String url,Object request,Map urlVariable);
put(URI uri,Object request);
DELETE请求:
返回值为void.
delete(String url,Object...urlVariable);
delete(String url,Map urlVariable);
delete(URI uri,);