okHttp -------------------------Handler 實現
阿新 • • 發佈:2018-12-15
public class okHttp { private final int HTTP_FAILURE=100; private final int HTTP_SUCCESS=101; private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what){ case HTTP_SUCCESS: String data = (String) msg.obj; lisenner.success(data); break; case HTTP_FAILURE: lisenner.fail(); break; } } }; /* 介面回撥 */ private HttpLisenner lisenner; public void result(HttpLisenner lisenner) { this.lisenner = lisenner; }
public interface HttpLisenner { void success(String data); void fail(); }
//okhttp get請求 public okHttp get(String url){ OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(url) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { handler.sendEmptyMessage(HTTP_FAILURE); } @Override public void onResponse(Response response) throws IOException { String toString = response.body().string(); Message message =Message.obtain(); message.what = HTTP_SUCCESS; message.obj = toString; handler.sendMessage(message); } }); return this; } }