Spring rest endpoint不返回body
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring rest endpoint不返回body相关的知识,希望对你有一定的参考价值。
我对我的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中,而是在我的客户端处理响应,我正在错误地处理它。
您可以按如下方式返回ResponseEntity:
@GetMapping("/test")
public ResponseEntity test(Principal principal) {
System.out.println("HELOOOO");
return new ResponseEntity<>("hello", HttpStatus.OK);
}
这对我来说很好。
响应状态是200
,但响应最终带有错误消息"Failed to load response data"
。
这可能只是由于未将您返回的数据序列化为有效的JSON。
我不是春天的专家,但也许你回来了""hello""
应该没事。
以上是关于Spring rest endpoint不返回body的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 Spring Boot 的情况下注入 Feign Client 并调用 REST Endpoint
Spring Social Authentication Filter for Stateless REST Endpoints 使用 Facebook Token 进行身份验证
404-not-found-while-running-spring-boot-rest-api