[英]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.