有没有办法访问服务中的当前响应?我需要这个来删除过期的Facebook cookie ...
我知道如何访问当前请求:
RequestContextHolder.currentRequestAttributes().getRequest()
虽然不缺回应。
答案 0 :(得分:1)
服务不应该知道http,因为它只是一个具有实用程序方法的Groovy(或有时是Java)类。但由于您最有可能从具有访问权限的控制器调用它,您可以从Web层中的请求中提取信息并将其传递给服务层进行处理。
答案 1 :(得分:0)
我总体上同意@Burt,但是在上面的评论中提到了像@julkiewicz这样的情况,你必须访问cookie,并且不想传递所有信息(特别是如果cookie在许多中间层不需要)。我发现的两个选项如下(第一个更干净,但我不知道WebUtils
是否优先于RequestContextHolder
,或者可能反过来。
WebUtils.retrieveGrailsWebRequest().request.cookies
和
RequestContextHolder.requestAttributes.request.request.request.cookies
我不知道为什么有这么多嵌套的request
对象,但我在Grails 2.4.2中验证了这个对我有用。