okhttp封装

来源:互联网 发布:域名注册空间商网站 编辑:程序博客网 时间:2024/06/05 03:06
public class OkHttpUtils {    private Handler handler = new Handler();    public Handler getHandler(){        return handler;    }    //单例    private static OkHttpUtils okHttpUtils = new OkHttpUtils();    private OkHttpUtils(){};    public static OkHttpUtils getInstance(){        return okHttpUtils;    }    private OkHttpClient client;    private void initOkHttpClient(){        if(client == null){            client = new OkHttpClient.Builder().build();        }    }    //公用的get请求方法    public void doGet(String url, Callback callback){        initOkHttpClient();        Request request = new Request.Builder().url(url).build();        Call call = client.newCall(request);        call.enqueue(callback);    }}
======================================================
public abstract class OnUiCallback implements Callback{    private Handler handler = OkHttpUtils.getInstance().getHandler();    public abstract void onFailed(Call call, IOException e);    public abstract void onSuccess(String result) throws IOException;    @Override    public void onFailure(final Call call, final IOException e) {        //该方法就是把  线程post到handler所在的线程        handler.post(new Runnable() {            @Override            public void run() {                onFailed(call, e);            }        });    }    @Override    public void onResponse(final Call call, final Response response) throws IOException {        final String result = response.body().string();                handler.post(new Runnable() {            @Override            public void run() {                try {                    onSuccess(result);                } catch (IOException e) {                    e.printStackTrace();                }            }        });    }}


原创粉丝点击