2017-05-10 3 views
1

Ist es möglich, Header als Teil der GetForEntity-Methode zu setzen oder sollte ich Exchange verwenden? Ich versuche, OAuth-Header als Teil von GetForEntity-Aufrufe festzulegen.Resttemplate getForEntity - Kopfzeilen übergeben

+3

Sie Austausch verwenden. Wenn Sie sich die Dokumentation https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html ansehen, akzeptiert getForEntity kein Object oder HttpEntity als Argument – pvpkiran

+0

Danke @pvpkiran –

Antwort

1

können Sie .exchange verwenden:

ResponseEntity<YourResponseObj> entity = new TestRestTemplate().exchange(
       "http://localhost:" + port + "/youruri", HttpMethod.GET, new HttpEntity<Object>(headers), 
       YourResponseObj.class); 

Voll Junit Beispiel:

@RunWith(SpringRunner.class) 
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) 
public class ReferenceTablesControllerTests { 

    @LocalServerPort 
    private int port; 

    @Test 
    public void getXxxx() throws Exception { 
     MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); 
     headers.add("Content-Type", "application/json"); 
     headers.add("Authorization", "tokenxxx"); 
     ResponseEntity<YourResponseObj> entity = new TestRestTemplate().exchange(
       "http://localhost:" + port + "/youruri", HttpMethod.GET, new HttpEntity<Object>(headers), 
       YourResponseObj.class); 
     Assert.assertEquals(HttpStatus.OK, entity.getStatusCode()); 
     Assert.assertEquals("foo", entity.getBody().getFoo()); 
    } 

}