okhttp的二次封装

来源:互联网 发布:用友软件销售 编辑:程序博客网 时间:2024/06/05 06:49

1.导入okhttp的依赖包

compile 'com.squareup.okhttp3:okhttp:3.6.0'compile 'com.squareup.okio:okio:1.11.0'

2.定义一个okhttpclient

public static OkHttpClient okHttpClient=null;

3.定义单例模式

public static OkHttpClient getInstance() {    if (okHttpClient == null) {        synchronized (Okhttputils.class) {            if (okHttpClient == null) {                File sdcache = new File(Environment.getExternalStorageDirectory(), "regist");                int cacheSize = 10 * 1024 * 1024;                okHttpClient = new OkHttpClient.Builder()                        .connectTimeout(15, TimeUnit.SECONDS)                        .writeTimeout(20, TimeUnit.SECONDS)                        .readTimeout(20, TimeUnit.SECONDS)                        .cache(new Cache(sdcache.getAbsoluteFile(), cacheSize))                        .build();            }        }    }    return okHttpClient;}
4.定义get方法
public static void doGet(String url, Callback callback) {    OkHttpClient okHttpClient = getInstance();    Request request = new Request.Builder().url(url).build();    Call call = okHttpClient.newCall(request);    call.enqueue(callback);}

5.定义post方法
public static void doPost(String url, Map<String, String> params, Callback callback) {    OkHttpClient okHttpClient = getInstance();    FormBody.Builder builder = new FormBody.Builder();    for (String key : params.keySet()) {        builder.add(key, params.get(key));    }    Request request = new Request.Builder().url(url).post(builder.build()).build();    Call call = okHttpClient.newCall(request);    call.enqueue(callback);}


原创粉丝点击