如何使用拦截器在Retrofit 2.0中添加标头?

如何使用拦截器在Retrofit 2.0中添加标头?,第1张

概述我们的团队决定采用Retrofit2.0,我正在做一些初步的研究.我是这个图书馆的新手.我想知道如何使用拦截器通过我们的Android应用程序中的Retrofits2.0添加自定义标头.关于使用拦截器在Retrofit1.X中添加标头有很多tutorials,但由于API在最新版本中发生了很大的变化,我不确定如何

我们的团队决定采用Retrofit 2.0,我正在做一些初步的研究.我是这个图书馆的新手.

我想知道如何使用拦截器通过我们的Android应用程序中的Retrofits 2.0添加自定义标头.关于使用拦截器在Retrofit 1.X中添加标头有很多tutorials,但由于API在最新版本中发生了很大的变化,我不确定如何在新版本中调整这些方法.此外,Retrofit尚未更新其新文档.

例如,在以下代码中,我应该如何实现Interceptor类来添加额外的头文件?此外,undocumented Chain object究竟是什么?何时会调用intercept()?

    OkhttpClIEnt clIEnt = new OkhttpClIEnt();    clIEnt.interceptors().add(new Interceptor() {        @OverrIDe        public Response intercept(Chain chain) throws IOException {            Response response = chain.proceed(chain.request());            // How to add extra headers?            return response;        }    });    Retrofit retrofit = new Retrofit.Builder()            .baseUrl(BASE_API_URL)            .clIEnt(clIEnt)            .addConverterFactory(GsonConverterFactory.create())            .build();

解决方法:

看一下这个.

public class headerInterceptor        implements Interceptor {    @OverrIDe    public Response intercept(Chain chain)            throws IOException {        Request request = chain.request();        request = request.newBuilder()                .addheader("appID", "hello")                .addheader("deviceplatform", "androID")                .removeheader("User-Agent")                .addheader("User-Agent", "Mozilla/5.0 (X11; Ubuntu; linux x86_64; rv:38.0) Gecko/20100101 firefox/38.0")                .build();        Response response = chain.proceed(request);        return response;    }}

科特林

class headerInterceptor : Interceptor {    overrIDe fun intercept(chain: Interceptor.Chain): Response = chain.run {        proceed(            request()                .newBuilder()                .addheader("appID", "hello")                .addheader("deviceplatform", "androID")                .removeheader("User-Agent")                .addheader("User-Agent", "Mozilla/5.0 (X11; Ubuntu; linux x86_64; rv:38.0) Gecko/20100101 firefox/38.0")                .build()        )            }}
总结

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

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存