【问题标题】:HTTPBuilder/RESTClient 401 handlingHTTPBuilder/RESTClient 401 处理
【发布时间】:2013-03-06 04:52:17
【问题描述】:

我正在使用 groovy HTTPBuilder 构建应用程序,但我有点卡在处理 401 上。在我的应用程序中,我的身份验证 cookie 每隔几分钟就会失效(请求返回 401),我必须通过请求一些资源来更新它(说 /token/refresh) 然后重复原始请求.. 我知道我可以定义 response.'401' 失败关闭,但我不想一遍又一遍地在每个请求中指定它。我想更透明地做到这一点。 我检查了已经有一些身份验证策略(basic、oauth、digest、...),但它们都不适合我,实施新的东西似乎需要做很多工作。 我想定义一些 responseInterceptor 来检查响应状态,如果是 401,我会发出令牌更新请求,然后重复原始请求(所有这些都将在该拦截器中完成) 这有可能吗?

【问题讨论】:

    标签: groovy apache-httpclient-4.x httpbuilder


    【解决方案1】:

    如何使用元编程拦截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
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-05
      • 1970-01-01
      相关资源
      最近更新 更多