首页 文章

Spring RestController以html而不是json的形式返回错误

提问于
浏览
1

我有一个spring boot webapp,我在其中定义了REST API . 我使用Spring安全性来实现REST API安全性 .

我用RestController注释了我的控制器类 . 我最近更新了spring boot,mvc和security到最新版本 .

我现在看到,在我的否定情况下,在更新之前它返回了json错误响应,但现在更新后,它返回html错误响应 .

在更新之前,它给出了以下错误响应 -

{
  "timestamp": "2018-05-21T18:22:37.105+0000",
  "status": 500,
  "error": "Internal Server Error",
  "message": "Error message.",
  "path": "<API path>"
}

更新后,它给出以下响应 .

<!DOCTYPE html>
<html>
    <head>
        <title>Apache Tomcat/8.0.51 - Error report</title>
        <style type="text/css">H1 {font-family:Tahoma,Arial,sansserif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}.line {height: 1px; background-color: #525D76; border: none;}</style>
    </head>
    <body>
        <h1>HTTP Status 500 - Error message.</h1>
        <div class="line"></div>
        <p>
            <b>type</b> Status report
        </p>
        <p>
            <b>message</b>
            <u>Error message.</u>
        </p>
        <p>
            <b>description</b>
            <u>The server encountered an internal error that prevented it from fulfilling this request.</u>
        </p>
        <hr class="line">
        <h3>Apache Tomcat/8.0.51</h3>
    </body>
</html>

我的控制器中没有任何ExceptionHandler . 它默认为json错误 . 我的libs中有jackson和jackson-mapper-asl .

我无法弄清楚是否有某个默认设置需要更改以发送错误为json .

我也试图禁用ErrorPageFilter,但即使在那之后我得到HTML响应 .

有什么方法可以让我得到json响应而不是html?

1 回答

  • 0

    Spring使用Accept HTTP请求标头帮助您进行内容协商 .

    如果 @RestController 发送了一个html错误页面,您的客户可能会要求它 . 如果你想获得一个json而不是一个html响应,请务必发送带有您请求的 Headers Accept: application/json .

相关问题