将字符串错误响应转换为 Http 状态代码

Nov*_*ser 3 java spring httpclient

在我使用的 Java+Spring 应用程序中,从第三方调用 over RestTemplate,我们在 JSON 中获得错误响应,响应代码为 200。

例如

{
    "errors": [{
        "reason": "did not like the request",
        "error": "BAD_REQUEST"
    }]
}
Run Code Online (Sandbox Code Playgroud)

如何转换BAD_REQUEST为 400 个整数表示。Apache HttpStatusinte 似乎没有提供任何接口来这样做。

小智 8

也许你可以使用org.springframework.http.HttpStatus

String error = "BAD_REQUEST";
HttpStatus httpStatus = HttpStatus.valueOf(error);
int errorIntCode = httpStatus.value();
Run Code Online (Sandbox Code Playgroud)

或更安全:

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();
Run Code Online (Sandbox Code Playgroud)