我正在使用 Java 开发 RESTful Web 服务。如果出现问题,我需要一种向客户端发送错误消息的好方法。
根据 Javadoc , HttpServletResponse.setStatus(int status, String message)
已弃用 “由于消息参数的含义不明确”。
是否有一种首选方法来设置响应的状态消息或“ 原因短语”? sendError(int, String)
方法不这样做。
编辑:澄清一下,我想修改 HTTP 状态行,即 "HTTP/1.1 404 Not Found"
,而不是正文内容。具体来说,我想发送类似 "HTTP/1.1 400 Missing customerNumber parameter"
的回复。
或者我想将 HTTP 状态行修改为类似 227 IM Used
类的内容 - 换句话说: HTTP 状态描述 不同于 Web 服务器知道要发送的内容。
原文由 Adam Crume 发布,翻译遵循 CC BY-SA 4.0 许可协议
我认为任何 RESTful 客户端都不会期望通过查看原因短语来找出问题所在;我见过/使用过的大多数 RESTful 服务都会在响应正文中发送标准状态信息和扩展消息。
sendError(int, String)
非常适合这种情况。