小编Bra*_*non的帖子

当第一个失败并返回401 Unauthorized时,请重做先前的请求

我正在构建一个Android应用程序,该应用程序将从REST API中获取数据。

为了发出请求,我将RetrofitOtto一起使用。

对于我的所有请求,我添加一个RequestInterceptor,它将为我的所有请求添加标头(授权)。在RequestInterceptor中,我正在对当前的access_token调用一个方法,然后将标头填充到请求中。

RequestInterceptor requestInterceptor = new RequestInterceptor() {

    @Override
    public void intercept(RequestFacade request) {
        Token token = TokenPreferences.getToken();

        request.addHeader("Authorization", token.getTokenType() + " " + token.getAccessToken());
    }
};

RestAdapter restAdapter = new RestAdapter.Builder()
      .setEndpoint("https://example.com")
      .setRequestInterceptor(requestInterceptor)
      .build();

  ...
Run Code Online (Sandbox Code Playgroud)

在access_token过期之前,此方法可以正常工作,然后请求将失败,且HTTP状态为401 Unauthorized。发生这种情况时,我想发出一个新请求以从我得到的refresh_token中获取一个新的access_token,然后再次执行第一个请求。

我不太确定如何进行这项工作。

java android android-networking retrofit

5
推荐指数
1
解决办法
1661
查看次数

正则表达式,带汉字和全/半宽角色

我正在为java项目做验证规则,我得到的一个要求是:

"身份证地址应包含不少于八(≥8)个汉字(不包括全宽/半宽符号)."

我无法理解如何解决这个问题.

我已经达到了可以验证中文字符但无法排除所有全宽/半宽符号的程度.

return Pattern.matches("^[\\p{IsHan}]{8,}$", address);
Run Code Online (Sandbox Code Playgroud)

结果应该是这样的

  • 名字名字名字名字= true
  • 名字名字名字名(字)=真
  • 名字名字名(字)= false
  • 名字名字名(字)= false

有人有建议吗?

java regex chinese-locale

5
推荐指数
1
解决办法
5305
查看次数