我正在测试一个应该返回 JSON 的端点。
效果很好。但是当出现异常(例如禁止)时,它应该返回正确的错误代码和消息。
现在我这样做:
@ResponseBody
@GetMapping(produces = APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity getInfo() {
try{
//..do something
}catch(Exception e){
return new ResponseEntity<>("Error calculating the required information", null, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
相反,当我 curl url 或大摇大摆时,我得到这个:
Request URL
http://localhost:8081/info
Request Headers
{
"Accept": "application/json;charset=UTF-8"
}
Response Body
no content
Response Code
0
Response Headers
{
"error": "no response from server"
}
是的,我正在到达端点(我调试了它)。
知道为什么会返回此响应吗? 谢谢。
最佳答案
您需要更改方法标志
public ResponseEntity<Void> getInfo() {
并更改返回类型
return new ResponseEntity<Void>(HttpStatus.INTERNAL_SERVER_ERROR);
如果您想返回特定消息,您需要创建自定义异常类。
您可以在 github 上找到以下项目链接的示例:https://github.com/in28minutes/spring-microservices/tree/master/02.restful-web-services/src/main/java/com/in28minutes/rest/webservices/restfulwebservices
关于java - 为什么我无法发送正确的服务器状态作为响应,而是在到达端点时收到 "no response"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48943530/