1. 程式人生 > >okHttp -------------------------Handler 實現

okHttp -------------------------Handler 實現

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;
    }
}