2016-06-03 2 views
-1

메서드를 사용하여 Spring 3.1 Framework의 RestTemplate 클래스를 사용하는 레거시 코드를 업데이트하고 있습니다. 나는 세부 묘사의 주요 생략 인 것처럼 보이는 것을 보았다. 통신하려는 나머지 클라이언트가 400 상태 코드를 반환하면 HttpClientErrorException이 발생하지만 서버가 요청을 거부 한 이유에 대한 세부 정보를 제공하는 응답 본문이 없습니다. 매우 유용한 정보를 제공하는 응답 본문을 검색 할 방법이없는 것처럼 보입니다.Spring HttpClientErrorException 응답 본문에 대한 자세한 내용을 제공하지 않습니다.

이미 호출 코드에서 잘못된 점을 파악할 필요가 없습니다. 난 그냥 호출에 오류가 발생하면 HTTP 응답의 본문에 액세스하고 로그 할 수있는 방법이 있는지 알고 싶습니다.

+0

: 그것은 그것의 부모 클래스 HttpStatusCodeException에서 상속 다음과 같은 두 가지 접근을 통해 액세스 할 수 있습니다 // github.com/spring-projects/spring-framework/blob/v3.1.4.RELEASE/org.springframework.web/src/main/java/org/springframework/web/client/DefaultResponseErrorHandler.java#L90) – Roman

+0

감사합니다. 논평. 예외가 발생했을 때 응답 본문이 없습니다. 이것이 스택 추적과 함께 되돌아 오는 것입니다. 'org.springframework.web.client.HttpClientErrorException : 400 잘못된 요청' – gogogadgetgeek

+0

아 ... 신경 쓰지 마라. 응답 본문을 가져 오는 예외에 대한 실제 메서드가 있습니다. – gogogadgetgeek

답변

1

응답 본문은 실제로 HttpClientErrorException의 속성입니다. [DefaultResponseErrorHandler @ 90] (HTTPS :`HttpClientErrorException`로 모든 정보가 포함되어처럼 보이는 코드에서

public byte[] getResponseBodyAsByteArray() 
public String getResponseBodyAsString() 
관련 문제