您的位置:首页 > 理论基础 > 计算机网络

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

2016-12-27 11:58 2879 查看
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缓存,统一对有无网络处理, 返回结果问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: