微服務——RestTemplate

 

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

相關文章
相關標籤/搜索