2017-06-01 24 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(); 
}