okhttp 增加默认参数 (自定义拦截器)

来个最简单的最常用的

OkHttp 或者说 OkHttpClient 添加默认参数添加参数

通俗的说就是在你的请求连接自动加上你想加的参数例如
https://aaa.bbb.com?aaa=1212&bb=6787&from=android
from=android 就是你想增加的参数 在每条连接请求都会带上这个参数

使用方式

mOkHttpClient = new OkHttpClient.Builder()
				//此处拦截器是打印日子的
                .addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY))
                .readTimeout(DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS)
                .connectTimeout(DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS)
                //此处添加自定义拦截器   
                  .addInterceptor(new MyInterceptor)
                  ...

参数什么自己拿哈!这只是个例子

拦截器如下

**
 * 添加公共参数
 * * <p>
 */
public class MyInterceptor implements Interceptor {


    @Override
    public Response intercept(Interceptor.Chain chain) throws IOException {
      Request request = chain.request();
            HttpUrl httpUrl = request.url()
                    .newBuilder()
                    /* add parameter */
                    .removeAllQueryParameters("token")
                    .removeAllQueryParameters("parameter2")
                    //移除是防止重复添加参数   
                    //某种情况下可能会报错,造成后台获取的参数有问题  
                    .addQueryParameter("token", "token")
                    .addQueryParameter("parameter", "parameter")
                    .build();
            Request build = request.newBuilder()
                    /* add  header */
                    .addHeader("contentType", "text/json")
                    .url(httpUrl)
                    .build();
            Response response = chain.proceed(build);
            return response;
		}
}

你可能感兴趣的:(安卓开发,OkHttp添加默认参数,okhttp,自定义Interceptor)