zoukankan      html  css  js  c++  java
  • Retrofit2.0+OkHttp设置统一的请求头(request headers)

    有时候要求Retrofit2的接口中每个都要增加上headers,又不想做重复的事情,可以使用这种方法来为每个request请求都设置上相同的请求头header。

    修改请求头request headers主要是通过拦截器来实现,下面是我自己根据需要设置的。如果还有增加其他的header,可以再进行增加。

     /**
         * 请求拦截器,修改请求header
         */
        private class RequestInterceptor implements Interceptor{
    
            @Override
            public Response intercept(Chain chain) throws IOException {
                Request request = chain.request()
                        .newBuilder()
                        .addHeader("Content-Type", "text/html; charset=UTF-8")
    //                    .addHeader("Accept-Encoding", "*")
                        .addHeader("Connection", "keep-alive")
                        .addHeader("Accept", "*/*")
                        .addHeader("Access-Control-Allow-Origin", "*")
                        .addHeader("Access-Control-Allow-Headers", "X-Requested-With")
                        .addHeader("Vary", "Accept-Encoding")
    //                    .addHeader("Cookie", "add cookies here")
                        .build();
    
                Log.v("zcb", "request:" + request.toString());
                Log.v("zcb", "request headers:" + request.headers().toString());
    
                return chain.proceed(request);
            }
        }

    使用方法:

        private OkHttpClient getOkHttpClient() {
            //定制OkHttp
            OkHttpClient.Builder httpClientBuilder = new OkHttpClient
                    .Builder();
            //设置超时时间
            httpClientBuilder.connectTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS);
            httpClientBuilder.writeTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS);
            httpClientBuilder.readTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS);
            //使用拦截器
            httpClientBuilder.addInterceptor(new RequestInterceptor());
            httpClientBuilder.addInterceptor(new LogInterceptor());
            
            return httpClientBuilder.build();
        }
  • 相关阅读:
    WordPress Editorial Calendar插件权限安全绕过漏洞
    Linux kernel 本地拒绝服务漏洞
    Linux kernel ‘evm_update_evmxattr’函数拒绝服务漏洞
    VB6-ListView的排序和点滴
    VB6IDE改造
    杂记-匆匆北京行
    第60篇随笔:《道法自然》读书笔记
    VB6 AddIns 控件样式模板
    VB6-改造ComUnit(免除用例名称注册)
    VB6-设计模式点滴
  • 原文地址:https://www.cnblogs.com/zhang-cb/p/6220957.html
Copyright © 2011-2022 走看看