java - 如何正确地向客户端发送 HTTP 消息

标签 java http jakarta-ee servlets status

我正在使用 Java 开发 RESTful Web 服务。如果出现问题,我需要一种向客户端发送错误消息的好方法。

根据Javadoc , HttpServletResponse.setStatus(int status, String message) 已弃用“由于消息参数的含义不明确。”

是否有设置响应的状态消息或“reason phrase”的首选方法? sendError(int, String) 方法不这样做。

编辑:澄清一下,我想修改 HTTP 状态行,即 "HTTP/1.1 404 Not Found",而不是正文内容。具体来说,我想发送 "HTTP/1.1 400 Missing customerNumber parameter" 之类的响应。

或者我想将 HTTP 状态行修改为 227 IM Used 之类的内容- 换句话说:HTTP 状态描述不同于网络服务器知道要发送的内容。

最佳答案

我认为任何 RESTful 客户端都不会期望通过查看原因短语来找出问题所在;我见过/使用的大多数 RESTful 服务将在响应正文中发送标准状态信息和扩展消息。 sendError(int, String) 非常适合这种情况。

关于java - 如何正确地向客户端发送 HTTP 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1100869/

相关文章:

java - 当从 WizardsPage1 导航到 2 直至下一页时,如果单击进度栏取消按钮,如何强制用户保持在同一页面上?

java - liferay 自定义 portlet 中的最大 language.properties 文件大小

http - Akka HTTP - 如何获取原始(未解码的 URL)请求 URL?

rest - 如何使用 REST API 与 Docker 引擎交互?

jakarta-ee - 使用服务生产者的 CDI PostConstruct

java - 带有 IN 子句中参数列表的 PreparedStatement

java - 使用 java.util.prefs.Preferences 处理 Windows 注册表

php - PHP 解释器如何与 Apache 交互?

java - 如何实现每个客户端一个消息队列?

tcp - 应用程序级校验和,因为 tcp 校验和可能太弱了?