Retrofit,Okhttp对每个Request统一动态添加header和参数

来源:互联网 发布:vb打印99乘法表 编辑:程序博客网 时间:2024/05/29 09:29

How to Add header to Every Request


添加统一通用header, 不会覆盖前面的header


okHttpClient.interceptors().add(new Interceptor() {  
    @Override
    public Response intercept(Interceptor.Chain chain) throws IOException {
        Request original = chain.request();


        // Request customization: add request headers
        Request.Builder requestBuilder = original.newBuilder()
                    .addHeader("header-key", "value1")
                    .addHeader("header-key", "value2");


        Request request = requestBuilder.build();
        return chain.proceed(request);
    }
});


添加统一通用header, 会覆盖前面的header


okHttpClient.interceptors().add(new Interceptor() {  
    @Override
    public Response intercept(Interceptor.Chain chain) throws IOException {
        Request original = chain.request();


        // Request customization: add request headers
        Request.Builder requestBuilder = original.newBuilder()
                .header("headerkey", "header-value"); // <-- this is the important line


        Request request = requestBuilder.build();
        return chain.proceed(request);
    }



Parameters
How to Add Query Parameters to Every Request


OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
httpClient.addInterceptor(new Interceptor() {  
    @Override
    public Response intercept(Chain chain) throws IOException {
        Request original = chain.request();
        HttpUrl originalHttpUrl = original.url();


        HttpUrl url = originalHttpUrl.newBuilder()
                .addQueryParameter("apikey", "your-actual-api-key")
                .build();


        // Request customization: add request headers
        Request.Builder requestBuilder = original.newBuilder()
                .url(url);


        Request request = requestBuilder.build();
        return chain.proceed(request);
    }
});




Retrofit+RxJava结合系列请阅读:

  • Retrofit 2.0 
    超能实践,完美支持Https传输
  • Retrofit2.0 
    完美同步Cookie实现免登录

  • Retrofit 2.0 超能实践(三),轻松实现文件/图片上传

  • -Retrofit 2.0 超能实践(四),完成大文件断点下载

  • 基于Retrofit2.0 封装的超好用的RetrofitClient工具类

  • 玩转IOC,教你徒手实现自定义的Retrofit框架

  • Rxjava +Retrofit 你需要掌握的几个技巧,Retrofit缓存,统一对有无网络处理, 返回结果问题

0 0
原创粉丝点击