java将相同的请求头发送到响应头会导致无限循环和错误的json响应Spring引导
我想在我的控制器响应中返回相同的请求头,但如果我这样做,那么在尝试使用postman进行测试时会出现无限等待外观
我有这个控制器
@PostMapping("/yy")
public ResponseEntity<ClientOutput> myTest(@RequestHeader HttpHeaders headers,
@RequestBody ClientInput clientInput) {
return new ResponseEntity<>(new ClientOutput(), headers, HttpStatus.OK);
}
这导致了一个无限等待循环,当我尝试用postman测试它时,我如何返回从我的响应中的请求中得到的相同标头
当我尝试使用这个控制器时,它也会产生一个不完整的响应
@PostMapping("/uu")
public ResponseEntity<ClientOutput> myTestTwo(@RequestHeader HttpHeaders headers,
@RequestBody ClientInput clientInput) {
return new ResponseEntity<>(ClientOutput.builder()
.error(Error.builder()
.code("401")
.title("Error")
.message("A error happened")
.build())
.build(), headers, HttpStatus.UNAUTHORIZED);
}
它不是返回我的错误DTO,而是返回这个不完整的JSON
{
"name": null,
"error": {
"code": "401",
"title": "Error",
我只想在响应中返回相同的请求头
# 1 楼答案
邮递员在默认情况下发送标题内容长度,并且它是为请求计算的。因为您的代码只是获取请求的Content-Length头并返回它,所以它将与响应的实际长度不匹配
删除Postman中的请求头内容长度将解决您的响应是不完整的JSON结构的问题
在“邮递员”中,为请求打开“邮件头”选项卡,并确保未隐藏自动生成的邮件头。然后可以取消选中内容长度标题