拦截器

package wld.bawei.com.myjindong;

import java.io.IOException;

import okhttp3.FormBody;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;

/**
 * Created by 大金鑫 on 2017/12/15.
 */

public class CommonParamsInterceptor implements Interceptor {
    @Override
    public Response intercept(Chain chain) throws IOException {
        //得到原始的请求对象
        Request request = chain.request();//原始的请求项
        //得到请求方式 Get 、Post
        String method = request.method();
        if("GET".equals(method)){
            //取出原始的url
            String oldUrl = request.url().toString();
            System.out.println("原始的url : "+oldUrl);
            String newUrl = oldUrl + "&source=android";
            System.out.println("一个新的请求url : "+newUrl);
            //构建新的request
            request = new Request.Builder()
                    .url(newUrl)
                    .build();
        }else if("POST".equals(method)){
            //1,取出旧的参数以及url
            FormBody body = (FormBody) request.body();
            //取出旧的Url
            String oldUrl = request.url().toString();
            //构建一个新的FormBody
            FormBody.Builder newFormBody = new FormBody.Builder();
            for (int i = 0; i < body.size();i++){
                String key = body.name(i);//keywors
                String value = body.value(i);//value
                newFormBody.add(key,value);
            }
            //公共参数
            newFormBody.add("source","android");
            //新构建的reqeust
            request = new Request.Builder()
                    .url(oldUrl)
                    .post(newFormBody.build())
                    .build();
            //2.构建请求体
            //3.重新执行
        }
        return chain.proceed(request);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值