使用拦截器添加标头的Android Retrofit 2.0不起作用

使用拦截器添加标头的Android Retrofit 2.0不起作用,第1张

概述我有用于OkHttp客户端的Singletondagger模块,我正在尝试使用Interceptor添加标头@Provides@SingletonOkHttpClientprovideOkhttpClient(Cachecache,finalLocalDatalocalData){HttpLoggingInterceptorlogging=newHttpLoggingInterceptor();logging.setLeve

我有用于Okhttp客户端的Singleton dagger模块,我正在尝试使用Interceptor添加标头

@ProvIDes@SingletonOkhttpClIEnt provIDeOkhttpClIEnt(Cache cache, final LocalData localData) {    httpLoggingInterceptor logging = new httpLoggingInterceptor();    logging.setLevel(httpLoggingInterceptor.Level.headerS);    OkhttpClIEnt.Builder clIEnt = new OkhttpClIEnt.Builder();    clIEnt.readTimeout(60, TimeUnit.SECONDS);    clIEnt.addInterceptor(logging);    clIEnt.addNetworkInterceptor(new Interceptor() {        @OverrIDe        public Response intercept(@NonNull Chain chain) throws IOException {            Request original = chain.request();            Request.Builder requestBuilder = original.newBuilder()                    .addheader("Hp-Application", "AndroID");            Request request = requestBuilder.build();            Response originalResponse = chain.proceed(request);            try {                if (originalResponse.code() == 200) {                    localData.setLastUpdateTime(System.currentTimeMillis());                }            } catch (Exception e) {                e.printstacktrace();            }            return originalResponse;        }    });    clIEnt.connectTimeout(60, TimeUnit.SECONDS);    clIEnt.cache(cache);    return clIEnt.build();}

但看着日志我看不到预期的标题.此外,我收到错误,因为没有必要的标题,特定的调用不起作用.

我还尝试使用不同的类添加addInterceptor()/ addNetworkInterceptor()

 public class headerInterceptor        implements Interceptor {    @OverrIDe    public Response intercept(Chain chain)            throws IOException {        Request request = chain.request();        request = request.newBuilder()                .addheader("Hp-Application", "AndroID")                .build();        return chain.proceed(request);    }}

但这种方式对我来说也不起作用.

如何在每次只有一个实现的应用程序调用中添加此标头?

解决方法:

添加拦截器的顺序很重要.您的日志记录拦截器首先运行,然后才会运行标头添加拦截器.

为了获得最佳的日志记录体验,请将日志记录拦截器设置为您添

总结

以上是内存溢出为你收集整理的使用拦截器添加标头的Android Retrofit 2.0不起作用全部内容,希望文章能够帮你解决使用拦截器添加标头的Android Retrofit 2.0不起作用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1115232.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存