java - 如何在 Retrofit2 中添加标题
问题描述
我很困惑,我已将令牌保存在 SharedPrefernce 中,当我尝试获取用户名时,即使我已经使用了 Header 和 Sharedpref 令牌,我仍然无法使对象首选项为空。也许我的错误是没有给 Header 进行改造。在这里,我很困惑父亲般地添加标题。我使用了现有的参考资料,但它不起作用。我乞求如果有出路我真的希望你能帮助我。
RetrofitClient.java
public class RetrofitClient {
SharedPrefManager sharedPrefManager;
private static Retrofit retrofit = null;
public static Retrofit getClient(String baseUrl){
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.build();
if (retrofit == null){
retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
}
return retrofit;
}
}
这个令牌保存
SharedPrefManager sharedPrefManager;
sharedPrefManager.getSPToken()
解决方案
这是示例改造客户
public class RetrofitClient {
private static Retrofit retrofit = null;
public static Retrofit getClient(String baseUrl){
HeaderInterceptor interceptor = new HeaderInterceptor();
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.build();
if (retrofit == null){
retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
}
return retrofit;
}
}
您的用例的拦截器。
public class HeaderInterceptor implements Interceptor {
SharedPrefManager sharedPrefManager = new SharedPrefManager();
@Override
public Response intercept(Chain chain) throws IOException {
Request originalRequest = chain.request();
Request newRequest = originalRequest.newBuilder()
.header("Language", sharedPrefManager.getSPToken())
.build();
return chain.proceed(newRequest);
}
}
推荐阅读
- android - Flutter 发布 apk 擦除数据
- sql - Oracle:如果我给出任何日期,则查询以获取一周的最后一个星期五
- sql-server - SqlPackage 无法导入权限“EAES”
- php - 我无法在 php 中连接变量
- apache-kafka - 如何使用时间 T 的窗口将单个分区中的记录分组到单个记录,每个记录具有相同的键
- keras - 在 keras2 中保存模型时,“NoneType”对象没有“更新”属性
- kubernetes - 等待 pod:apiserver 卡住
- g++ - 项目错误:无法运行编译器“g++”。也许你忘了在 gitlab env 中设置环境
- asp.net-mvc - 在 asp.net-mvc 中保存函数定义的常见做法是什么
- android - 如何计算不包括状态栏、工具栏/操作栏和底部导航视图的活动的高度?