我正在使用 groovy HTTPBuilder 构建应用程序,但我有点卡在处理 401 上。在我的应用程序中,我的身份验证 cookie 每隔几分钟就会失效(请求返回 401),我必须通过请求一些资源来更新它(比如 /token /refresh) 然后重复原始请求。我知道我可以定义 response.'401' 失败关闭,但我不想一遍又一遍地在每个请求中指定它。我想更透明地做到这一点。我检查了已经有一些身份验证策略(basic、oauth、digest、...),但它们都不适合我,实施新的东西似乎需要做很多工作。我想定义一些 responseInterceptor 来检查响应状态,如果是 401,我
问问题
574 次
1 回答
0
使用元编程拦截request
方法调用并在那里处理状态 401 怎么样?
我现在无法测试,所以我会尝试盲拍:
import groovyx.net.http.HTTPBuilder
import static groovyx.net.http.Method.GET
import static groovyx.net.http.ContentType.TEXT
def oldRequest = HTTPBuilder.&request
HTTPBuilder.metaClass.request = { method1, method2, clos ->
println "handler"
def authErrorClos = {
response.'401' = {
// handle
}
}
authErrorClos.delegate = oldRequest
authErrorClos()
oldRequest method1, method2, clos
}
于 2013-03-18T12:20:55.030 回答