当前位置: 首页 > 知识库问答 >
问题:

如何返回带有错误响应的Http状态行?

施令秋
2023-03-14

下面是我正在使用的一段代码:

@ExceptionHandler(HttpRequestMethodNotSupportedException)
    ResponseEntity<VndErrors> httpRequestMethodNotSupportedException(ex) {
        LOGGER.error(ex.message)
        ResponseEntity.status(BAD_REQUEST).contentType(VND_ERROR).body(new 
        VndErrors(BAD_REQUEST, exceptionMessage))
    }

期望reponse conatins的状态行:“HTTP/1.1400坏请求”想知道这是可以实现的吗?如果是,那么我如何继续做同样的事情。

共有1个答案

岑驰
2023-03-14

这是tomcat的标准行为(请参见tomcat-8.5-changelog.html)

spring-boot-issue-6789

RFC7230规定,客户端应忽略HTTP/1.1响应消息中的原因短语。由于reason短语是可选的,Tomcat不再发送它。因此,不再使用系统属性org.apache.coyote.use_custom_status_msg_in_header并已删除。(马克)

 类似资料:
  • 当我使用MVC控制器时,我使用“返回OK(对象)”或“返回BadRequest(ErrorMessage)”等。 我怎样才能实现这是剃刀页? 我尝试返回新的JSON result(object);这在状态代码为200时有效。但是如果我想返回带有JSON错误消息的状态代码400呢?

  • 我使用curl获取http头以查找http状态代码并返回响应。我使用以下命令获取http头

  • 问题内容: 我试图按照此链接中的建议将错误返回到对控制器的调用,以便客户端可以采取适当的措施。javascript通过jqueryAJAX调用控制器。仅在不将状态设置为error的情况下,我才可以重新获得Json对象。这是示例代码 如果没有设置状态码,我会得到Json。如果设置状态代码,则会返回状态代码,但不会返回Json错误对象。 更新 我想将Error对象作为JSON发送,以便可以处理ajax

  • 如果我的WebClient请求收到HTTP 4xx或5xx错误,我需要进行另一次HTTP调用。 对于这种情况,正确的做法是什么?

  • 问题内容: 我在这我想从服务器获取与$ HTTP GET XML数据的AngularJS应用说http://example.com/a/b/c/d/getDetails?fname=abc&lname=def(此通过在浏览器中输入链接进行手动访问时显示XML文件的树状结构)。 当我运行应用程序时,不会从该链接获取数据。而是显示 状态为0 的错误。 我不确定$ http.get为什么会失败并转到返回