Spring rest endpoint不返回body

问题描述 投票:0回答:2

我对我的Spring应用程序中的一个休息端点的行为感到非常困惑

我有一个简单的控制器:

@RestController
public class MyController {

    @GetMapping("/test")
    public String test(Principal principal) {
        System.out.println("HELOOOO");
        return "hello";
    }
}

我正在向此端点发送请求。请求被接受并返回200 OK但身体缺失。我看到了printline,我在浏览器控制台中看到了请求被成功处理但没有正文。

我的应用程序中有其他端点(有些甚至在同一个控制器类中),这些端点工作正常,所以我很困惑这个特定的原因可能是什么原因。

编辑:这是我在Web控制台中看到的:

HTTP/1.1 200
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Access-Control-Allow-Origin: *
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 22 Apr 2019 08:37:46 GMT

Failed to load response data

@ResponseBody注释什么都不做。

EDIT2:谢谢大家的建议 - 特别是关于用cUrl尝试端点的建议。异常不是在Spring中,而是在我的客户端处理响应,我正在错误地处理它。

java spring-boot
2个回答
0
投票

您可以按如下方式返回ResponseEntity:

@GetMapping("/test")
public ResponseEntity test(Principal principal) {
        System.out.println("HELOOOO");
        return new ResponseEntity<>("hello", HttpStatus.OK);
    }

这对我来说很好。


0
投票

响应状态是200,但响应最终带有错误消息"Failed to load response data"

这可能只是由于未将您返回的数据序列化为有效的JSON。

我不是春天的专家,但也许你回来了"\"hello\""应该没事。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.