2017-10-31 2 views
0

Java + Spring 응용 프로그램에서 RestTemplate을 통해 호출 된 제 3 자로부터 200 응답 코드로 JSON에서 오류 응답을받습니다. 예컨대Http로 문자열 오류 응답을 변환하십시오. 상태 코드

{ 
    "errors": [{ 
     "reason": "did not like the request", 
     "error": "BAD_REQUEST" 
    }] 
} 

어떻게 400 개 정수 표현에 BAD_REQUEST을 변환 할 수 있습니다. Apache HttpStatus inte가 인터페이스를 제공하지 않는 것 같습니다.

+1

그래서 서버가 콘텐츠 200 HTTP 상태로 응답? –

+0

예, 상대방 서버가 응답하므로 변경할 수 없습니다. –

+0

가능한 모든 오류를 묻고 표준 상태 코드에 대한 사용자 고유의 매핑을 만듭니다. –

답변

1

어쩌면 당신은 org.springframework.http.HttpStatus 사용할 수 있습니다

String error = "BAD_REQUEST"; 
HttpStatus httpStatus = HttpStatus.valueOf(error); 
int errorIntCode = httpStatus.value(); 

이상의 안전 :

String error = "BAD_REQUEST"; 
HttpStatus httpStatus = Arrays.stream(HttpStatus.values()) 
     .filter(status -> status.name().equals(error)) 
     .findAny() 
     .orElse(HttpStatus.INTERNAL_SERVER_ERROR); 
int errorIntCode = httpStatus.value(); 
+0

굉장! 감사 –

관련 문제