我想知道是否有任何选项可以根据Retrofit中的标志或注释启用/禁用标头拦截器。由于我的API中很少有路径不需要令牌,因此我需要跳过向这些API调用添加令牌。
目前我有一个简单的拦截器,它会为我的应用程序的所有请求添加一个标头
//builder is of type OkHttpClient.Builder
builder.addInterceptor(chain -> {
Request request = chain.request().newBuilder().
addHeader("authorization", "Bearer foofootoken").build();
return chain.proceed(request);
});
答案 0 :(得分:2)
我前段时间对此进行了研究,但我没有找到开箱即用改装提供的任何解决方案,但您可以自行轻松实施解决方法。
使用您选择的标题注释请求,例如“NoAuth:true”并在拦截器中检查此标头:
builder.addInterceptor(chain -> {
String noAuthHeader = chain.request().header("NoAuth");
Request.Builder request = chain.request().newBuilder();
if(noAuthHeader == null || !noAuthHeader.equals("true")){
request.addHeader("authorization", "Bearer foofootoken").build();
}
return chain.proceed(request.build());
});