注:一定要在MainActivity中調用接口回調的方法 public class OKHttpUtils { //單利模式,獲取對象 private static OKHttpUtils okHttpUtils = null; private MyHandler myhandler = new MyHandler(); private OkLoadListener okLoadListener; public static OKHttpUtils getInstance() { if (okHttpUtils == null) { okHttpUtils = new OKHttpUtils(); } return okHttpUtils; } //get請求 public void OkGet(String url) { //創建ok對象 OkHttpClient okHttpClient = new OkHttpClient(); //創建請求對象 //路徑是單獨寫了一個類(存放路徑:HttpConfig.goods_url) Request request = new Request.Builder().url(HttpConfig.goods_url).build(); //創建請求隊列 Call call = okHttpClient.newCall(request); //執行,異步請求 call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { Message message = myhandler.obtainMessage(); message.what = 0; message.obj = e.getMessage(); myhandler.sendMessage(message); } @Override public void onResponse(Call call, Response response) throws IOException { Message message = myhandler.obtainMessage(); message.what = 1; message.obj = response.body().string(); myhandler.sendMessage(message); } }); } //處理線程 class MyHandler extends Handler { @Override public void handleMessage(Message msg) { //處理消息 switch (msg.what) { //失敗 case 0: String error = (String) msg.obj; okLoadListener.LoadError(error); break; //成功 case 1: String json = (String) msg.obj; okLoadListener.LoadSuccess(json); break; } } } //接口回調 // 《1》定義接口 public interface OkLoadListener { void LoadSuccess(String json); void LoadError(String error); } // 《2》定義一個方法,共外部調用 public void setLoadListener(OkLoadListener okLoadListener) { this.okLoadListener = okLoadListener; } }
OKHttpClient封裝
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.