简单说下Retrofit怎么设置请求头信息

Posted Yingshirun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单说下Retrofit怎么设置请求头信息相关的知识,希望对你有一定的参考价值。

简单说下Retrofit怎么设置请求头信息

不多说,直接上代码
有三种方式:

1、直接在参数里写 每次访问的时候都要传入一下


@GET("weatherservice/citylist")
Observable<WeatherRestBean> queryWeather(@Header("apikey") String apikey,@Query("cityname") String cityname);

2、写到注解里这样就少了个参数,但是每定义个接口都要写一次也是比较麻烦

·
@Headers("apikey:ac7c302dc489a69082cbee6a89e3646c")
@GET("weatherservice/cityid")
Observable<WeatherEntity> query(@Query("cityid")String cityid);

3、在创建Retrofit的时候添加,最方便的方式

OkHttpClient client = new OkHttpClient.Builder()
            .addInterceptor(new Interceptor() 
            @Override
            public Response intercept(Chain chain) throws IOException 
                Request request = chain.request();
                Request.Builder builder1 = request.newBuilder();
                Request build = builder1.addHeader("apikey", "ac7c302dc489a69082cbee6********").build();
                return chain.proceed(build);
            
        ).retryOnConnectionFailure(true)
          .build();
mRetrofit = new Retrofit.Builder()
           .client(client)
           .baseUrl(ConstantApi.url)
           .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
           .addConverterFactory(GsonConverterFactory.create())

以上是关于简单说下Retrofit怎么设置请求头信息的主要内容,如果未能解决你的问题,请参考以下文章

Retrofit2 + OkHttp3设置Http请求头(Headers)方法汇总

Android Retrofit2&OkHttp3添加统一的请求头Header

Retrofit2 动态(静态)添加请求头Header

Android怎样在http头信息里设置参数

nodejs中发送https请求怎么设置请求头

Retrofit 获取、设置cookie