1,到okhttp 找最新的版本:
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
封装回调接口:
public abstract class OkhttpCallBack { public abstract void FailureBack(Call request, Exception e); public abstract void SuccessBack(Response response) throws IOException; }
OkHttp get 请求:
package com.example.administrator.okhttpencapsulation; import android.content.Context; import java.io.File; import java.io.IOException; import java.util.concurrent.TimeUnit; import okhttp3.Cache; import okhttp3.Call; import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; /** * Created by Administrator on 2018/3/26. */ public class OkhttpMamager { private static OkhttpMamager mInstance; private final OkHttpClient mokhttpClient; public static OkhttpMamager getinstance(Context context){ if (mInstance==null){ synchronized (OkhttpMamager.class){ if (mInstance==null){ mInstance = new OkhttpMamager(context); } } } return mInstance; } public OkhttpMamager(Context context) { File sdcache= context.getExternalCacheDir(); int cache=10*1024*1024; OkHttpClient.Builder builer = new OkHttpClient.Builder().connectTimeout(15, TimeUnit.SECONDS) .readTimeout(20, TimeUnit.SECONDS) .writeTimeout(20, TimeUnit.SECONDS) .cache(new Cache(sdcache.getAbsoluteFile(), cache)); mokhttpClient=builer.build(); } public void getASynHttp(String url, final OkhttpCallBack callBack){ final Request request=new Request.Builder().url(url).build(); mokhttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { callBack.FailureBack(call,e); } @Override public void onResponse(Call call, Response response) throws IOException { callBack.SuccessBack(response); } }); } }