我使用的是JAX-RS 2.1,发现Response
类枚举缺少423
错误代码。
有人可以向我解释为什么吗?
我在互联网上搜索,但未找到任何相关线索。
答案 0 :(得分:1)
摘自Response.Status
文档:
HTTP定义的常用状态代码,有关完整列表,请参见HTTP / 1.1文档。应用程序可以通过创建
Response.StatusType
的实现来添加其他状态代码。
状态423
被定义为WebDAV中RFC 4918的一部分,它是HTTP协议的扩展名。
一旦423
为registered in IANA,就可以将其视为标准状态代码,但是当前定义HTTP / 1.1协议的任何文档中都未定义它:
尽管有很多方法可以返回423
。最简单的是:
return Response.status(423).build();
或者,您可以按照Response.StatusType
文档中的建议实施Response.Status
:
public static class LockedStatusType implements Response.StatusType {
@Override
public int getStatusCode() {
return 423;
}
@Override
public String getReasonPhrase() {
return "Locked";
}
@Override
public Response.Status.Family getFamily() {
return Response.Status.Family.CLIENT_ERROR;
}
}
然后返回它:
return Response.status(new LockedStatusType()).build();