作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否有任何选项可以根据 Retrofit 中的标志或注释启用/禁用 header 拦截器。由于我的 API 中几乎没有不需要 token 的路径,因此我需要跳过向这些 API 调用添加 token 的步骤。
目前我有一个简单的拦截器,它将为我的应用程序发出的所有请求添加一个 header
//builder is of type OkHttpClient.Builder
builder.addInterceptor(chain -> {
Request request = chain.request().newBuilder().
addHeader("authorization", "Bearer foofootoken").build();
return chain.proceed(request);
});
最佳答案
我前段时间对此进行了研究,但我没有找到开箱即用的改造提供的任何解决方案,但您可以轻松地自行实现解决方法。
只需使用您选择的 header 注释请求,例如“NoAuth: true”并在拦截器中检查此 header :
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());
});
关于android - 在 Retrofit 中有选择地向 header 添加不记名 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41032720/
我是一名优秀的程序员,十分优秀!