繁体   English   中英

使用原生 Java 检查 4xx Http 代码

[英]check for 4xx Http Code with native Java

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

如何以某种方式检查4xx系列的responseCode ,如下所示...

CLIENT_ERROR.contains(code)

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

我现在实际上在使用javax.ws.rs.core.Response.Status.Family 谢谢@Kon 的有用提示!

import javax.ws.rs.core.Response.Status.Family;

if (Family.familyOf(responseCode) == Family.CLIENT_ERROR) {

如果使用 Spring,您可以简单地执行以下操作:

    HttpStatus.valueOf(statusCode).is4xxClientError()

如果您需要任何额外的东西,您还可以查看is4xxClientError()实现

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM