gpt4 book ai didi

java - Spring @RestController 响应已提交

转载 作者:太空宇宙 更新时间:2023-11-04 10:02:53 26 4
gpt4 key购买 nike

我有以下代码

@RestController
public class TokenRefreshController {
@Autowired
TokenAuthenticationService tokenAuthenticationService;

@ApiOperation(value = "Generate new authentication token using a refresh token")
@RequestMapping(value = "/token/refresh",
method = RequestMethod.POST)
public void refreshToken(@RequestParam("refresh") String refreshToken, HttpServletResponse response) throws IOException {
System.out.println("WHEN REFRESHING TOKEN THE RESPONSE IS COMMITTED :" + response.isCommitted());
tokenAuthenticationService.refreshAuthToken(refreshToken,response);
}
}

在我打印到控制台的行上,它始终是正确的。因此,在进入我的 Controller 之前,响应就已经提交了。我怎样才能获得未提交的响应,因为我正在刷新AuthToken方法中设置一些 header 并在需要时返回错误。

正如下面的评论中提到的,其中一个过滤器可能正在提交响应,但我仍然不知道如何阻止过滤器这样做。

最佳答案

您可以尝试以下方法,但这适用于 Spring Boot 版本。

您应该使用 ResponseEntity 对象返回您的数据并使用 createYourObject 关键字,该关键字将包含您将设置的对象。

@RestController
public class TokenRefreshController {
@Autowired
TokenAuthenticationService tokenAuthenticationService;

@ApiOperation(value = "Generate new authentication token using a refresh token")
@RequestMapping(value = "/token/refresh",
method = RequestMethod.POST)
public ResponseEntity<createYourObject> refreshToken(@RequestParam("refresh") String refreshToken, HttpServletResponse response) throws IOException {
System.out.println("WHEN REFRESHING TOKEN THE RESPONSE IS COMMITTED :" + response.isCommitted());
tokenAuthenticationService.refreshAuthToken(refreshToken,response);
return new ResponseEntity<createYourObject>(yourObjectResponse,HttpStatus.CREATED);
}
}

关于java - Spring @RestController 响应已提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53277370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com