服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - Retrofit2.0添加Header的方法总结(推荐)

Retrofit2.0添加Header的方法总结(推荐)

2022-08-08 11:05PennTsui Android

这篇文章主要介绍了Retrofit2.0添加Header的方法总结(推荐),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

最近在项目里面需要添加header,然后就想大家分想一下retrofit添加header的方法

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

?
1
2
3
4
5
public interface ApiService {
  @Headers("Cache-Control: max-age=560000")
  @GET("/data")
  Call<List<Data>> getData();
}

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

?
1
2
3
4
5
6
7
8
public interface ApiService {
  @Headers({
    "Accept: application/vnd.yourapi.v1.full+json",
    "User-Agent: YourAppName"
  })
  @GET("/data/{user_id}")
  Call<Data> getData(@Path("user_id") long userId);
}

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

?
1
2
3
4
public interface ApiService {
  @GET("/data")
  Call<List<Data>> getData(@Header("Content-Range") String contentRange);
}

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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();

其实我们看上面的addInterceptor方法好像是并列的,至于哪个拦截器在前,哪个在后,应该无所谓。但是事实是,如果吧mHttpLoggingInterceptor放前面,则后面的interceptor添加的heanders将不会生效。当我们使用addInterceptor来添加网络拦截器时,一定要把网络拦截器放前面。

使用addNetworkInterceptor

当我们使用网络请求方面的拦截器时,直接使用addNetworkInterceptor方法来添加,而不要使用addInterceptor来添加。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/silenceoo/article/details/77460607

延伸 · 阅读

精彩推荐
  • AndroidAndroid开发之Wifi基础教程

    Android开发之Wifi基础教程

    这篇文章主要介绍了Android开发Wifi基础教程,实例分析了Wifi的各种常见基本技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    books195811412021-03-13
  • Android理解Android的手势识别提高APP的用户体验

    理解Android的手势识别提高APP的用户体验

    对于触摸屏,其原生的消息无非按下、抬起、移动这几种,我们只需要简单重载onTouch或者设置触摸侦听器setOnTouchListener即可进行处理...

    Android开发网11802021-01-25
  • AndroidAndroid实现图片轮播效果

    Android实现图片轮播效果

    这篇文章主要为大家详细介绍了Android实现图片轮播效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    徐刘根11492021-04-20
  • Android基于Android中Webview使用自定义的javascript进行回调的问题详解

    基于Android中Webview使用自定义的javascript进行回调的问题详解

    本篇文章对Android中Webview使用自定义的javascript进行回调的问题进行了详细的分析介绍。需要的朋友参考下...

    Android开发网9532021-01-15
  • Androidandroid读写cookie的方法示例

    android读写cookie的方法示例

    这篇文章主要介绍了android读写cookie的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    junjieking7292022-02-23
  • Androidandroid压力测试命令monkey详解

    android压力测试命令monkey详解

    这篇文章主要介绍了android monkey命令详解,Monkey 就是SDK中附带的一个工具,该工具主要用于进行压力测试,需要的朋友可以参考下...

    Android开发网4612021-02-28
  • AndroidAndroid唤醒、解锁屏幕代码实例

    Android唤醒、解锁屏幕代码实例

    这篇文章主要介绍了Android唤醒、解锁屏幕代码实例,本文讲解了唤醒、解锁屏幕需要的权限和操作代码实例,代码中包含详细注释,需要的朋友可以参考下...

    Android开发网6072021-03-22
  • Androidandroid监听View加载完成的示例讲解

    android监听View加载完成的示例讲解

    今天小编就为大家分享一篇android监听View加载完成的示例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    yongerT_T6242022-08-01