为什么 JAX-RS 不支持开箱即用的 423 错误代码?
Why does JAX-RS doesn't support the 423 error code out-of-the-box?
我使用的是 JAX-RS 2.1,我发现 Response
class 枚举缺少 423
错误代码。
谁能告诉我为什么?
我在 Internet 上搜索但没有找到任何相关主题。
来自 Response.Status
文档:
Commonly used status codes defined by HTTP, see HTTP/1.1 documentation for the complete list. Additional status codes can be added by applications by creating an implementation of Response.StatusType
.
423
status code is defined as part of WebDAV in the RFC 4918,它是 HTTP 协议的扩展。
一旦423
is registered in IANA,它可以被认为是一个标准的状态代码,但它没有在当前定义HTTP/1.1协议的任何文档中定义:
虽然有很多方法可以 return 423
。最简单的是:
return Response.status(423).build();
或者,您可以按照 Response.Status
文档中的建议实施 Response.StatusType
:
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它:
return Response.status(new LockedStatusType()).build();
我使用的是 JAX-RS 2.1,我发现 Response
class 枚举缺少 423
错误代码。
谁能告诉我为什么?
我在 Internet 上搜索但没有找到任何相关主题。
来自 Response.Status
文档:
Commonly used status codes defined by HTTP, see HTTP/1.1 documentation for the complete list. Additional status codes can be added by applications by creating an implementation of
Response.StatusType
.
423
status code is defined as part of WebDAV in the RFC 4918,它是 HTTP 协议的扩展。
一旦423
is registered in IANA,它可以被认为是一个标准的状态代码,但它没有在当前定义HTTP/1.1协议的任何文档中定义:
虽然有很多方法可以 return 423
。最简单的是:
return Response.status(423).build();
或者,您可以按照 Response.Status
文档中的建议实施 Response.StatusType
:
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它:
return Response.status(new LockedStatusType()).build();