OkHttp二次封装,单例模式

public class OkHttpUtils {
    private OkHttpUtils okHttpUtils;
    static OkHttpClient client;
    public static  OkHttpClient getInstance(){
        if (client == null) {
            synchronized (OkHttpUtils.class){
                if (client == null) {
                    File file=new File(Environment.getExternalStorageDirectory()+"client");
                    client=new OkHttpClient().newBuilder()
                            .cache(new Cache(file,10*1024*1024))
                            .connectTimeout(3000, TimeUnit.SECONDS)
                            .readTimeout(3000,TimeUnit.SECONDS)
                            .writeTimeout(3000,TimeUnit.SECONDS)
                            .build();
                }
            }
        }
        return client;
    }
    public static void doGet(String url, Callback callback){
        OkHttpClient instance = getInstance();
        Request request=new Request.Builder()
                .url(url)
                .build();
        instance.newCall(request).enqueue(callback);
    };
    public static void doPost(String url, Map<String,String> params, Callback callback){
        OkHttpClient instance = getInstance();
        FormBody.Builder form=new FormBody.Builder();
        for (String in:params.keySet() ) {
            form.add(in,params.get(in));
        }
        Request request=new Request.Builder()
                .url(url)
                .post(form.build())
                .build();
        instance.newCall(request).enqueue(callback);
    };
}

猜你喜欢

转载自blog.csdn.net/xude01/article/details/79825199