Retrofit 2.X使用详解之请求头
来源:互联网 发布:java ll 1 编辑:程序博客网 时间:2024/05/09 08:20
Retrofit提供了两个两种定义HTTP请求头字段的方法即静态和动态。静态头不能改变为不同的请求,头的键和值是固定的且不可改变的,随着程序的打开便已固定。在Retrofit 2.0中,OkHttp 是必须的,并且自动设置为了依赖。这样,我们又可以采用OkHttp添加请求头的方式添加请求头。
动态添加
@Header String value:默认为"",参数名称 @GET("/") Call<ResponseBody> query(@Header("Accept-Language") String lang); @HeaderMap @GET("/search") Call<ResponseBody> query(@HeaderMap Ma<String, String> headers);
静态添加
@Headers("Cache-Control: max-age=640000")@GET("/tasks")Call<List<Task>> getTasks();@Headers({ "X-Foo: Bar", "X-Ping: Pong"})@GET("/")Call(ResponseBody) deleteObject(@Query("id") String id);
OkHttp 请求拦截器
方式一: OkHttpClient.Builder httpClient = new OkHttpClient.Builder(); httpClient.addInterceptor(new Interceptor() { @Override public Response intercept(Interceptor.Chain chain) throws IOException { 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(); return chain.proceed(request); } } 方式二: OkHttpClient.Builder httpClient = new OkHttpClient.Builder(); httpClient.addInterceptor(new Interceptor() { @Override public Response intercept(Interceptor.Chain chain) throws IOException { Request original = chain.request(); Request request = original.newBuilder() .addHeader("Cache-Control", "no-cache") .addHeader("Cache-Control", "no-cache") .method(original.method(), original.body()) .build(); return chain.proceed(request); } } OkHttpClient client = httpClient.build(); Retrofit retrofit = new Retrofit.Builder() .baseUrl(API_BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .client(client) .build(); OkHtt请求头通过拦截器添加Header,两种方式的不同 .header(key, val):如果key相同,最后一个val会将前面的val值覆盖 .addHeader(key, val):如果key相同,最后一个val不会将前面的val值覆盖,而是新添加一个Header
参考资料
1.Retrofit 2.0:有史以来最大的改进
5 0
- Retrofit 2.X使用详解之请求头
- Retrofit 2.X使用详解之请求头
- Retrofit 2.X使用详解之基本使用
- Retrofit 2.X使用详解之基本使用
- Android网络请求框架Retrofit使用详解
- Square 之 Retrofit 使用详解
- Ajax之X-Requested-With请求头
- Ajax之X-Requested-With请求头
- AJAX之x-request-with请求头
- 使用Retrofit请求API
- 使用Retrofit Https请求
- Retrofit网络请求使用
- Retrofit用法详解之二(带参数get请求)
- Retrofit的进阶之路(二)添加请求头和上传图片
- OkHttp,Retrofit 1.x - 2.x 基本使用
- HTTP请求头详解
- HTTP请求头详解
- http请求头详解
- 嵌入式内核开发:led灯驱动
- 树结构练习——判断给定森林中有多少棵树
- FFMPEG开发过程中的相关术语
- java积累——apache commons fileupload 实现文件上传
- 2016华为软件精英挑战赛总结
- Retrofit 2.X使用详解之请求头
- codeforces 702B - Powers of Two
- python3 爬虫 urlretrieve
- MatLab建模学习笔记13——主成分分析(PCA)
- JAVA拾遗 - volatile关键字和原子性的探讨
- NBUT OJ 1645 聊天止于呵呵 简单模拟
- EasyDarwin开源流媒体服务器支持basic基本认证和digest摘要认证解析
- 【字符串】【最小表示法】Vijos P1683 有根树的同构问题
- MATLAB学习笔记01——基本命令和矩阵