繁体   English   中英

覆盖HTTP响应状态文本

[英]Override the HTTP response status text

我怎样才能在Tomcat的7覆盖的文本HttpStatu秒。

我正在使用HttpServletResponse.sendError(401, "Invalid username or Password") ,但当我在客户端查看响应状态时,它会发布401 Unauthorized

有没有办法覆盖它?

Tomcat不再支持 USE_CUSTOM_STATUS_MSG_IN_HEADER属性。

8.5.0更改日志:

RFC 7230声明客户端应忽略HTTP / 1.1响应消息中的原因短语。 由于原因短语是可选的,因此Tomcat不再发送它。 因此,系统属性org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER不再使用且已被删除。 (Markt的)

RFC 7230, 超文本传输​​协议(HTTP / 1.1):消息语法和路由 ,2014年6月。 第3.1.2节

原因 - 短语元素的唯一目的是提供与数字状态代码相关联的文本描述,主要是出于对交互式文本客户端更频繁使用的早期Internet应用程序协议的尊重。 客户端应该忽略原因 - 短语内容

否 - 响应代码根据RFC 2616设置。如果要将消息传递给用户(到API客户端),请将其写入正文或响应头中

编辑catalina.properties并添加属性:

org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true

在我的开发环境中使用该设置,然后当我这样做时:

response.sendError(HttpServletResponse.SC_BAD_REQUEST, 
                   "A very very very bad request");

我懂了:

HTTP/1.1 400 A very very very bad request
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8
Content-Language: en
Content-Length: 1024
Date: Fri, 20 Dec 2013 11:09:54 GMT
Connection: close

这里这里也讨论过

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM