OkHttp+Okhttp拦截

首先导入依赖

implementation 'com.squareup.okhttp3:okhttp:3.7.0'
implementation 'com.squareup.okio:okio:1.12.0'
public class Okhttp {

    private static volatile Okhttp instance;

   private Interceptor getAppInterceptor(){
        //添加拦截器
        Interceptor interceptor = new Interceptor() {
            @Override
            public Response intercept(Chain chain) throws IOException {
                Request request = chain.request();
                Log.e("Okhttp","拦截前");
                Response response = chain.proceed(request);
                Log.e("Okhttp","拦截后");
                return response;
            }
        };
        return interceptor;

    }
    private final OkHttpClient okHttpClient;

    private Okhttp() {
        File file = new File(Environment.getExternalStorageDirectory(), "cachell");
        okHttpClient = new OkHttpClient().newBuilder()
                .readTimeout(3000, TimeUnit.SECONDS)//设置读取超时时间
                .connectTimeout(3000, TimeUnit.SECONDS)//设置连接超时时间
                .addInterceptor(interceptor)//添加拦截器
                .cache(new Cache(file, 10 * 1024))
                .build();
    }
    
    //单例http
    public static Okhttp getInstance(){
        if (instance == null){
            synchronized (Okhttp.class){
                if (instance == null){
                    instance = new Okhttp();
                }
            }
        }
        return instance;
    }


    public static void okHttpGet(String url, Callback callback) {
        //创建okhttpclient
        OkHttpClient okHttpClient = new OkHttpClient();
        //创建request
        Request request = new Request
                .Builder().url(url)
                .method("GET", null)
                .build();
        okHttpClient.newCall(request).enqueue(callback);
    }

    public static void okHttpPost(String url, Map<String, String> parms, Callback callback) {
        OkHttpClient client = new OkHttpClient();
        FormBody.Builder builder = new FormBody.Builder();

        for (String key : parms.keySet()) {
            builder.add(key, parms.get(key));
        }
        Request request = new Request.Builder().url(url).post(builder.build()).build();
        client.newCall(request).enqueue(callback);

    }

}

猜你喜欢

转载自blog.csdn.net/weixin_43882999/article/details/85561348