此为okhttp封装的单例工具类,及泛型回调,结合了mvp模式 package com.bwie.test.Utils; import android.os.Handler; import android.os.Message; import com.bwie.test.View.CallBackResult; import com.google.gson.Gson; import java.io.IOException; import okhttp3.Call; import okhttp3.Callback; import okhttp3.FormBody;ssss import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; /** * User: Moyuchen * Date: 2017-10-26 14:50 * Description: */ public class NetWorkOkHttp { private static NetWorkOkHttp netWorkOkHttp; private OkHttpClient client; private final Handler handler; private NetWorkOkHttp(){ client=new OkHttpClient.Builder().addInterceptor(new LoggingInterceptor()) .build(); handler = new Handler(); } //单例模式 public static NetWorkOkHttp getInstance(){ if (netWorkOkHttp==null) { synchronized (NetWorkOkHttp.class){ if (netWorkOkHttp==null) { netWorkOkHttp=new NetWorkOkHttp(); } } } return netWorkOkHttp; } public<T> void getData(String url, final CallBackResult callBackResult, final Class<T> tclass){ FormBody.Builder builder = new FormBody.Builder(); RequestBody requestbody = builder.build(); Request request=new Request.Builder().url(url).post(requestbody).build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { callBackResult.onFailure("请求失败"); } @Override public void onResponse(Call call, Response response) throws IOException { if ( response.isSuccessful()) { String string = response.body().string(); Gson gson=new Gson(); final T t = gson.fromJson(string, tclass); final Message msg = Message.obtain(); msg.obj=t; handler.post(new Runnable() { @Override public void run() { callBackResult.onResponse(msg.obj); } }); } } }); } } 此为公共的接口,添加泛型package com.bwie.test.View; /** * User: Moyuchen * Date: 2017-10-26 14:48 * Description: */ public interface CommonView<T> { void OnFailure(String msg); void OnResponse(T t); }
okHttp单例封装
最新推荐文章于 2024-08-02 16:00:38 发布