问题 如何在Java中将HTTP状态代码转换为文本?


如何在Java中将HTTP状态代码转换为其文本表示?我的意思是这种转换有任何现有的实现。到目前为止我发现的最好的是 java.ws.rs.core.Response.Status#fromStatusCode(),仅转换所有状态的有限子集。


10084
2017-11-18 08:19


起源

创建自己的地图<Integer,String>。例如,您可以从xml中读取它。 - StKiller
我很确定符合条件的HTTP服务器必须发送状态代码和状态文本。 - Piskvor
是的,我也认为我的服务器必须发送代码和文本,这就是为什么我要问:) - yegor256


答案:


Apache HttpComponents 有一个(旧式)枚举类,它执行此操作:

http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/HttpStatus.html

你可以打电话给它getStatusText 使用枚举实例作为参数的方法来获取状态代码的文本表示。

Maven依赖是:

<dependency>
  <groupId>commons-httpclient</groupId>
  <artifactId>commons-httpclient</artifactId>
  <version>3.1</version>
</dependency>

4
2017-11-18 08:27



“commons-httpclient”是生命的终结(2007年最后一个版本)。新库是org.apache.httpcomponents:httpcore和获取状态文本的方法是EnglishReasonPhraseCatalog.INSTANCE.getReason(status,null); - uwe


如果您很乐意导入S​​pring Web, org.springframework.http.HttpStatus.valueOf(int).name() 应该这样做,如果你不介意下划线。


9
2017-11-18 08:30



这将返回代码编号为字符串,而不是文本表示。 - pablomolnar
@pablomolnar好点,更新 - artbristol