怎么在Retrofit2.0中添加Header

怎么在Retrofit2.0中添加Header?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

成都创新互联秉承实现全网价值营销的理念,以专业定制企业官网,成都网站制作、做网站,小程序制作,网页设计制作,手机网站制作设计营销型网站帮助传统企业实现“互联网+”转型升级专业定制企业官网,公司注重人才、技术和管理,汇聚了一批优秀的互联网技术人才,对客户都以感恩的心态奉献自己的专业和所长。

(1)使用注解的方式添加一个header参数

public interface ApiService { 
  @Headers("Cache-Control: max-age=560000")
  @GET("/data")
  Call> getData();
}

(2)使用注解的方式添加多个header参数

public interface ApiService { 
  @Headers({
    "Accept: application/vnd.yourapi.v1.full+json",
    "User-Agent: YourAppName"
  })
  @GET("/data/{user_id}")
  Call getData(@Path("user_id") long userId);
}

(3)使用注解的方式,header参数每次都不同,动态添加header

public interface ApiService { 
  @GET("/data")
  Call> getData(@Header("Content-Range") String contentRange);
}

(4)在代码里添加header,需要使用拦截器

OkHttpClient.Builder client = new OkHttpClient.Builder(); 
client.addInterceptor(new Interceptor() { 
  @Override
  public Response intercept(Interceptor.Chain chain) throws IOException {
    Request original = chain.request();
    Request request = original.newBuilder()
      .header("User-Agent", "YourAppName")
      .header("Accept", "application/vnd.yourapi.v1.full+json")
      .method(original.method(), original.body())
      .build();

    return chain.proceed(request);
  }
}

OkHttpClient httpClient = client.build(); 
Retrofit retrofit = new Retrofit.Builder() 
  .baseUrl(Constant.BASE_URL)
  .addConverterFactory(GsonConverterFactory.create())
  .client(httpClient)
  .build();

看完上述内容,你们掌握怎么在Retrofit2.0中添加Header的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


分享名称:怎么在Retrofit2.0中添加Header
本文网址:http://hbruida.cn/article/gossog.html