我有一些检查http响应的java代码。现在,我想检查客户端错误(4xx)系列的代码,我该怎么做?
int responseCode = ab.sendGetRequest(href);
最简单的解决方案是:
if (400 <= responseCode && responseCode < 500 ){
//...
}
或者在编码惯例方面稍微好一些但是可读性大受欢迎:
if (HttpStatus.SC_BAD_REQUEST <= responseCode &&
responseCode < HttpStatus.SC_INTERNAL_SERVER_ERROR)
如何检查responseCode
对4xx
家庭的某种方式,如下所示......
CLIENT_ERROR.contains(code)
重要的是,我不想使用自定义解决方案(编写我自己的CLIENT_ERROR
或检查范围,...)。是不是已经为此目的在java中存在一个相应的类?
答案 0 :(得分:8)
我现在实际上正在使用javax.ws.rs.core.Response.Status.Family
。谢谢@Kon的有用提示!
import javax.ws.rs.core.Response.Status.Family;
if (Family.familyOf(responseCode) == Family.CLIENT_ERROR) {
答案 1 :(得分:5)
如果使用Spring,您可以简单地进行:
HttpStatus.valueOf(statusCode).is4xxClientError()
如果您还需要其他任何内容,也可以查看is4xxClientError()的实现方式