Okhttp encapsulate notes and okhttp encapsulate notes
1. Go to okhttp to find the latest version:
Implementation 'com. squareup. okhttp3: okhttp: 3.10.0'
Encapsulate the callback interface:
public abstract class OkhttpCallBack { public abstract void FailureBack(Call request, Exception e); public abstract void SuccessBack(Response response) throws IOException;}
OkHttp get request:
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); } }); }}