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); }