package mlb.bawei.com.threetesttwo.okhttp;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import com.google.gson.Gson;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import mlb.bawei.com.threetesttwo.callback.ICallBack;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.logging.HttpLoggingInterceptor;
/**
-
@author
-
@date 2018/12/14
*/
public class OKHttp {
//01
private static OKHttp mInstance;
public static OKHttp getmInstance(){
if(mInstancenull){
synchronized (OKHttp.class){
if(mInstancenull){
mInstance = new OKHttp();
}
}
}
return mInstance;
}
//02 实例化m
private OkHttpClient mClient;
public OKHttp(){
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
mClient = new OkHttpClient.Builder()
.readTimeout(10, TimeUnit.SECONDS)
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.addInterceptor(interceptor)
.build();
}
//04
private Handler mHandler = new Handler(Looper.getMainLooper());
//03
public void getEnqueue(String url, final Class cla, final ICallBack iCallBack){
Request request = new Request.Builder()
.url(url)
.get()
.build();
Call call = mClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
iCallBack.fail(e);
}@Override public void onResponse(Call call, Response response) throws IOException { try { String string = response.body().string(); final o = new Gson().fromJson(string, cla); mHandler.post(new Runnable() { @Override public void run() { iCallBack.setData(o); } }); }catch (Exception e){ iCallBack.fail(e); } } });}
}
继续阅读与本文标签相同的文章
开源大数据周刊-第81期
-
携程、阿里、京东、腾讯iOS春招面试过程以及面试题总结!
2026-05-19栏目: 教程
-
浏览器事件机制中 事件触发的三个阶段
2026-05-19栏目: 教程
-
德媒:德国5G安全标准“一视同仁”,5G建设不排除华为
2026-05-19栏目: 教程
-
简单了解 JavaScript的组成
2026-05-19栏目: 教程
-
阿里云如何备份虚拟机?
2026-05-19栏目: 教程
