Retrofit添加header参数的几种方法

(1)使用注解的方式

添加一个Header参数

publicinterfaceUserService {

@Headers("Cache-Control: max-age=640000")

@GET("/tasks")

Call> getTasks();

}

添加多个Header参数

publicinterfaceUserService {

@Headers({

"Accept: application/vnd.yourapi.v1.full+json",

"User-Agent: Your-App-Name"

})

@GET("/tasks/{task_id}")

Call getTask(@Path("task_id")longtaskId);

}

(2)使用代码的方式,则需要使用拦截器

OkHttpClient.Builder httpClient =newOkHttpClient.Builder();

httpClient.addInterceptor(newInterceptor() {

@Override

publicResponse intercept(Interceptor.Chain chain)throwsIOException {

Request original = chain.request();

Request request = original.newBuilder()

.header("User-Agent","Your-App-Name")

.header("Accept","application/vnd.yourapi.v1.full+json")

.method(original.method(), original.body())

.build();

returnchain.proceed(request);

}

}

OkHttpClient client = httpClient.build();

Retrofit retrofit =newRetrofit.Builder()

.baseUrl(API_BASE_URL)

.addConverterFactory(GsonConverterFactory.create())

.client(client)

.build();

(3)使用注解的方式,但是Header参数每次提交的都不同,也就是动态的Header

publicinterfaceUserService {

@GET("/tasks")

Call> getTasks(@Header("Content-Range") String contentRange);

}

注意:以上都是在Retrofit2.0及以上使用的。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,665评论 19 139
  • 一、简介 Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于...
    Devil不加V阅读 671评论 0 0
  • Retrofit用法详解 一、简介 Retrofit是Square公司开发的一款针对Android网络请求的框架,...
    流水潺湲阅读 1,481评论 0 6
  • 是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,现在已...
    Android开发__落岑阅读 1,878评论 0 2
  • 家乡的菊花开了,一个人走在乡间的小路上。一直习惯独来独往,喜欢与自己相处,静下来与自己的内心对话,没有喧嚣,无比安...
    一言二丫阅读 591评论 1 3

友情链接更多精彩内容