使用本机Java检查4xx Http代码

时间:2016-01-13 16:16:26

标签: java http

我有一些检查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)

如何检查responseCode4xx家庭的某种方式,如下所示......

CLIENT_ERROR.contains(code)

重要的是,我不想使用自定义解决方案(编写我自己的CLIENT_ERROR或检查范围,...)。是不是已经为此目的在java中存在一个相应的类?

2 个答案:

答案 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()的实现方式