Zaprojektowałem webservice do wykonania zadania, jeśli parametry żądania są OK, lub zwracają 401 Nieautoryzowany kod statusu HTTP, jeśli parametry żądania są błędne lub puste.Spring RestTemplate wywołując webservice z błędami i analizując kod stanu
Używam RestTemplate
do wykonania testu i jestem w stanie zweryfikować status HTTP 200 OK, jeśli usługa odpowie poprawnie. Nie mogę jednak przetestować błędu HTTP 401, ponieważ sam RestTemplate
zgłasza wyjątek.
Moja metoda badawcza jest
@Test
public void testUnauthorized()
{
Map<String, Object> params = new HashMap<String, Object>();
ResponseEntity response = restTemplate.postForEntity(url, params, Map.class);
Assert.assertEquals(HttpStatus.UNAUTHORIZED, response.getStatusCode());
Assert.assertNotNull(response.getBody());
}
Wyjątek dziennika jest
org.springframework.web.client.HttpClientErrorException: 401 Unauthorized
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:88)
at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:533)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:489)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:447)
at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:318)
Jak mogę sprawdzić, czy usługa odpowiada z kodem stanu HTTP 401?
Czy moja odpowiedź działa dla Ciebie? – nilesh