2017-06-01 2 views
0

In meinem Code, den ich sehr oft HttpEntity neben ResponseEntity in der folgenden Art und Weise verwendet:Spring - generische Methode für Körper aus ResponseEntity immer mit HttpEntity

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

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

und dann

response.getBody() 

ich diesen Code wiederholen Ich habe mich die ganze Zeit gefragt, ob es möglich ist, eine generische Methode zu erstellen, mit der ich response.body() erhalten kann, wenn ich ein Objekt, das ich senden möchte, einen URL und einen HttpMethod-Typ angeben kann. Der Antworttext ist meistens eine Zeichenfolge, kann aber ein Objekt sein.

Antwort

2

Sie unter Code verwenden können, hier die Antwort Körper und Anfrage Körper gemacht generic:

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(); 
} 
Verwandte Themen