站内搜索:
首页 >> 前端 >> 内容
(拦截器)Interceptor配合Rxjava与Retrofit(工具类)的代码实例

时间:2018/5/22 11:58:12

(拦截器)Interceptor配合Rxjava与Retrofit(工具类)的代码实例

class LoggingInterceptor implements Interceptor {
    @Override
    public Response intercept(Chain chain) throws IOException {

        Request request = chain.request();
        Response response = null;
        Request requestProcess = null ;
        if("GET".equals(request.method())){
            String url =  request.url().toString() + "&source=android";
            Request.Builder builder =  request.newBuilder() ;
            builder.get().url(url);
            requestProcess =  builder.build();
            response = chain.proceed(requestProcess);
        } else {
            FormBody.Builder builder = new FormBody.Builder() ;
            RequestBody requestBody =  request.body() ;
            if(requestBody instanceof FormBody){
                FormBody formBody = (FormBody)requestBody ;
                for (int i=0;i<formBody.size();i++){
                    builder.add(formBody.encodedName(i),formBody.encodedValue(i));
                }
                builder.add("source","android");
            }
            requestProcess =  request.newBuilder().url(request.url().toString()).post(builder.build()).build() ;
            response = chain.proceed(requestProcess);
        }

        return response;
    }
}

  • 上一篇:简单封装分页功能JQuery插件(含源码)的代码实现
  • 下一篇:基于DWR的快速增删查改:增删查改源码实例分析
  • 返回顶部