public class HttpUtils {
private static final HttpUtils ourInstance = new HttpUtils();
private final OkHttpClient client;
private static volatile HttpUtils instance;
private Handler handler = new Handler();
public static HttpUtils getInstance() {
if (instance == null){
synchronized (HttpUtils.class){
if (null == instance){
instance = new HttpUtils();
}
}
}
return instance;
}
private HttpUtils() {
client = new OkHttpClient();
}
public void get(String url, final ICallBack iCallBack, final Type type){
Request request = new Request
.Builder()
.get()
.url(url)
.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() {
iCallBack.failed(e);
}
});
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String result = response.body().string();
Gson gson = new Gson();
final Object o = gson.fromJson(result, type);
handler.post(new Runnable() {
@Override
public void run() {
iCallBack.onsucces(o);
}
});
}
});
}
}
重建一个接口类
public interface ICallBack {
void onsucces(Object object);
void failed(Exception e);
}