java – Dagger Retrofit.在运行时添加auth头
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Dagger Retrofit.在运行时添加auth头,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1825字,纯文字阅读大概需要3分钟。
内容图文
![java – Dagger Retrofit.在运行时添加auth头](/upload/InfoBanner/zyjiaocheng/702/158ad742a05d4b97953fedaa50b6e42e.jpg)
我想知道Dagger是否有办法知道它应该在新数据可用时重新创建一个对象.
我所说的实例是我用于改造的请求标题.在某些时候(当用户登录时),我得到一个令牌,我需要将其添加到改造的标题中以进行经过身份验证的请求.问题是,我留下了相同的未经验证的改造版本.这是我的注射代码:
@Provides
@Singleton
OkHttpClient provideOkHttpClient(Cache cache) {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.cache(cache).build();
client
.newBuilder()
.addInterceptor(
chain -> {
Request original = chain.request();
Request.Builder requestBuilder = original.newBuilder()
.addHeader("Accept", "Application/JSON");
Request request = requestBuilder.build();
return chain.proceed(request);
}).build();
return client;
}
@Provides
@Singleton
Retrofit provideRetrofit(Gson gson, OkHttpClient okHttpClient) {
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxErrorHandlingCallAdapterFactory.create())
.baseUrl(mBaseUrl)
.client(okHttpClient)
.build();
return retrofit;
}
@Provides
@Singleton
public NetworkService providesNetworkService(Retrofit retrofit) {
return retrofit.create(NetworkService.class);
}
关于如何使这项工作的任何想法?
解决方法:
请考虑使用@oldergod提到的the approach,因为它是“官方”和更好的方式,而不建议下面提到的方法,它们可能被视为解决方法.
你有几个选择.
>只要获得令牌,就必须将为您提供Retrofit实例的组件归零,创建一个新组件并要求一个新的Retrofit实例,该实例将使用必要的okhttp实例进行实例化.
>快速和坏的 – 在SharedPreferences中保存令牌,创建okHttp头,这将从SharedPreferences应用令牌读取.如果没有 – 发送没有令牌标头.
>甚至更丑陋的解决方案 – 声明一个静态易失性String字段,并执行与步骤2中相同的操作.
为什么第二种选择不好?因为在每个请求中,您将轮询SD卡并从那里获取数据.
内容总结
以上是互联网集市为您收集整理的java – Dagger Retrofit.在运行时添加auth头全部内容,希望文章能够帮你解决java – Dagger Retrofit.在运行时添加auth头所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。