我想知道在某些标准Java类库中是否存在枚举类型,为所有有效的HTTP响应代码定义符号常量。它应该支持与对应的整数值之间的转换。

我正在调试一些使用javax.ws.rs.core.Response.Status的Java代码。它可以工作,但它只定义了大约一半的有效HTTP响应代码。


当前回答

每个人似乎都忽略了你问题中的“枚举类型”部分。

虽然HTTP状态码没有规范的源代码,但有一种简单的方法可以将任何缺少的状态常量添加到javax.ws.rs.core.Response.Status提供的状态常量中,而无需向项目添加任何额外的依赖项。

status只是javax.ws.rs.core.Response.StatusType接口的一个实现。您只需要创建自己的实现枚举,其中包含所需的Status Codes的定义。

核心库如Javax、Jersey等被写入接口的StatusType,而不是实现的Status(或者它们当然应该是)。因为你的新状态枚举实现了statusstype,它可以在任何你使用javax.ws.rs.core.Response.Status常量的地方使用。

只需记住,您自己的代码也应该写入StatusType接口。这将使您能够使用您自己的状态代码以及“标准”状态代码。

以下是一个简单实现的要点,其中包含为“Informational 1xx”状态代码定义的常量:https://gist.github.com/avendasora/a5ed9acf6b1ee709a14a

其他回答

另一种选择是使用Apache common -httpclient中的HttpStatus类,它会将各种Http状态作为常量提供给你。

http状态码常量的最佳提供者可能是Jetty的org.eclipse.jetty.http.HttpStatus类,因为:

在maven中有一个javadoc包,如果你搜索常数,只知道数字>,这很重要,只需打开API文档页面并搜索数字 常量包含状态码数字本身。

我唯一需要改进的是:将状态代码放在文本描述的前面,以便在开始编写代码时更方便地进行自动完成查找。

如果您正在使用Spring,则3。X版本有你想要的: http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/http/HttpStatus.html

请看下面Spring框架中的枚举,它提供了所有HTTP响应状态代码

HttpStatus价值观()。

每个人似乎都忽略了你问题中的“枚举类型”部分。

虽然HTTP状态码没有规范的源代码,但有一种简单的方法可以将任何缺少的状态常量添加到javax.ws.rs.core.Response.Status提供的状态常量中,而无需向项目添加任何额外的依赖项。

status只是javax.ws.rs.core.Response.StatusType接口的一个实现。您只需要创建自己的实现枚举,其中包含所需的Status Codes的定义。

核心库如Javax、Jersey等被写入接口的StatusType,而不是实现的Status(或者它们当然应该是)。因为你的新状态枚举实现了statusstype,它可以在任何你使用javax.ws.rs.core.Response.Status常量的地方使用。

只需记住,您自己的代码也应该写入StatusType接口。这将使您能够使用您自己的状态代码以及“标准”状态代码。

以下是一个简单实现的要点,其中包含为“Informational 1xx”状态代码定义的常量:https://gist.github.com/avendasora/a5ed9acf6b1ee709a14a