在REST服务中向客户端返回响应的所有可能性中,我看到了两种看起来相同的可能性:抛出WebApplicationException(可能使用Response实例)或返回Response实例.
为什么使用一种可能性而不是另一种可能性,因为结果相同?这与使用的REST框架有关,可以配置为在异常和常规响应之间做出不同反应吗?
我正在使用Jersey(1.18)为我的WebApplication构建REST API.在我的部分代码中,我有以下代码段.
return Response.status(Status.NO_CONTENT).entity(err_message).build();
Run Code Online (Sandbox Code Playgroud)
在哪里Status是一个实例com.sun.jersey.api.client.ClientResponse.Status;
根据Jersey文档NO_CONTENT应该返回一个204代码,而不是这个,http响应有一个包含200个代码的标题.
NO_CONTENT
public static final ClientResponse.Status NO_CONTENT
204 No Content,请参阅HTTP/1.1文档.
我试图将上述代码更改为
return Response.noContent().entity(err_message).build();
Run Code Online (Sandbox Code Playgroud)
但问题仍然存在.作为旁注,使用NOT_FOUND而不是按预期NO_CONTENT返回404标头.
关于'如何返回204代码?'的任何建议,这是一个错误或我做错了什么.
注意:不是返回200响应代码而不是204的重复