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,);