2017-06-01 47 views
0

在我的代碼,我經常使用HttpEntity一起ResponseEntity從ResponseEntity讓身體泛型方法:春天 - 在接下來的方式使用HttpEntity

HttpEntity<?> request = new HttpEntity<String>(myObject, headers); 

ResponseEntity<String> response = restTemplate.exchange("someurl", HttpMethod.POST, request, String.class); 

然後

response.getBody() 

我重複這個代碼所有的時間,我想知道是否有可能創建一個通用的方法,當我提供對象,我想發送一個URL,一個HttpMethod類型時,我可以得到response.body()。 響應正文大部分時間將是一個字符串,但可以是一個對象。

回答

2

您可以使用下面的代碼,這裏的響應主體和請求主體由通用:

public <T, R> T yourMethodName(R requestBody, 
           MultiValueMap<String, String> headers, 
           String url, 
           HttpMethod type, 
           Class<T> clazz) { 
    HttpEntity<?> request = new HttpEntity<String>(requestBody, headers); 
    //You have to create restemplate Obj somewhere 
    ResponseEntity<T> response = restTemplate.exchange(url, type, request, clazz); 
    return response.getBody(); 
}