拦截器


//带拦截器的OK

package com.example.mapdemo;

import android.os.Handler;
import android.util.Log;
import java.io.IOException;
import java.util.Map;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class EdOkthhp {
    private Handler handler=new Handler();
    private static EdOkthhp okHttp;
    EdOkthhp(){

    }
    public static EdOkthhp getInert(){
        if(null == okHttp){
            synchronized (EdOkthhp.class){
              okHttp=new EdOkthhp();
            }
        }
        return okHttp;
    }
   public  void doGet(String path, Map<String,String> map, final Okinteface okinteface){
       StringBuffer sb=null;

          for(String key:map.keySet()){
              if(sb==null){
                  sb=new StringBuffer();
                  sb.append("?");
              }else{
                  sb.append("&");
              }
              sb.append(key).append("=").append(map.get(key));
          }

       OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .addInterceptor(new Logger())
                .build();

       final Request request = new Request.Builder()
                    .get()
                    .url(path+sb.toString())
                    .build();
       Log.e("arr",path+sb.toString());
       Call call = okHttpClient.newCall(request);
       call.enqueue(new Callback() {
           @Override
           public void onFailure(Call call, final IOException e) {
               handler.post(new Runnable() {
                   @Override
                   public void run() {
                       okinteface.shibai(e.getMessage());
                   }
               });
           }

           @Override
           public void onResponse(Call call, final Response response) throws IOException {
               final String string = response.body().string();
               handler.post(new Runnable() {
                   @Override
                   public void run() {
                       okinteface.chenggong(string);
                   }
               });
           }
       });
   }
}


//拦截器的类

public class Logger implements Interceptor{  
    @Override  
    public Response intercept(Chain chain) throws IOException {  
        Request original = chain.request();  
        HttpUrl url=original.url().newBuilder()  
                .addQueryParameter("source","android")  
                .build();  
        //添加请求头  
        Request request = original.newBuilder()  
                .url(url)  
                .build();  
        return chain.proceed(request);  
    }  
}  



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值