!!!注意NetCallBack 泛型封装 和 okhttputils封装不要写在一个类中! public interface NetCallBack<T> { void successNet(T t); void errorNet(String errorMsg, int errorCode); } okhttputils封装public class OkHttpUtils { private NetCallBack callBack; private static final int OK = 0; private Handler mHandler = new Handler(); //get请求 public <T> void getLoadData(String url, final NetCallBack callBack, final Class<T> tClass) { this.callBack = callBack; LoggingInterceptor loggingInterceptor=new LoggingInterceptor(); OkHttpClient okHttpClient = new OkHttpClient.Builder() .addInterceptor(loggingInterceptor) .readTimeout(20, TimeUnit.SECONDS) .connectTimeout(10, TimeUnit.SECONDS) .build(); final Request request = new Request.Builder().url(url).build(); Call call = okHttpClient.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { callBack.errorNet(e.getMessage(), 498); } @Override public void onResponse(Call call, Response response) throws IOException { T t = new Gson().fromJson(response.body().string(), tClass); final Message msg = Message.obtain(); msg.what = OK; msg.obj = t; mHandler.post(new Runnable() { @Override public void run() { callBack.successNet(msg.obj); } }); } }); } //post请求 public <T> void getLoadDataPost(String url, final NetCallBack callBack, final Class<T> tClass, RequestBody body) { this.callBack = callBack; OkHttpClient okHttpClient = new OkHttpClient.Builder() .readTimeout(20, TimeUnit.SECONDS) .connectTimeout(10, TimeUnit.SECONDS) .build(); final Request request = new Request.Builder().url(url).post(body).build(); Call call = okHttpClient.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { callBack.errorNet(e.getMessage(), 499); } @Override public void onResponse(Call call, Response response) throws IOException { T t = new Gson().fromJson(response.body().string(), tClass); final Message msg = Message.obtain(); msg.what = OK; msg.obj = t; mHandler.post(new Runnable() { @Override public void run() { callBack.successNet(msg.obj); } }); } }); } }
NetCallBack 泛型封装 + okhttputils封装
最新推荐文章于 2021-09-06 09:36:27 发布