1

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

4

1 に答える 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 に答える