public class HttpUtils {
private static volatile HttpUtils instance;
private OkHttpClient client;
private Handler handler=new Handler();

private HttpUtils(){
    client=new OkHttpClient();
}

public  static  HttpUtils getInstance(){
    if (instance==null){
        synchronized (HttpUtils.class){
            if (null==instance){
                instance=new HttpUtils();
            }
        }

    }
    return instance;
}

public void get(String url, final ICallBack callback, final Type type){
    Request request=new Request.Builder().url(url).get().build();
    Call call=client.newCall(request);
    call.enqueue(new Callback() {
        @Override
        public void onFailure(Call call, final IOException e) {
            handler.post(new Runnable() {
                @Override
                public void run() {
                    callback.onFailed(e);
                }
            });
        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            String string=response.body().string();
            Gson gson=new Gson();
            final   o=gson.fromJson(string,type);
            handler.post(new Runnable() {
                @Override
                public void run() {
                    callback.onSuccess(o);
                }
            });
        }
    });
}

}

收藏 打印