Groovy HTTPBuilder を使用してアプリケーションを構築していますが、401 の処理に行き詰まっています。私のアプリでは、数分ごとに認証 Cookie が無効になり (リクエストが 401 を返します)、リソースをリクエストして更新する必要があります (/token など)。 /refresh) その後、元の要求を繰り返します。response.'401' 失敗の閉鎖を定義できることはわかっていますが、すべての要求で何度も何度も指定したくありません。もっと透明にやりたい。すでにいくつかの認証戦略 (basic、oauth、digest など) があることを確認しましたが、どれも私には適しておらず、新しいものを実装するのは大変な作業のようです。応答ステータスを確認できる responseInterceptor を定義したいと思います。401 の場合は、'
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 に答える