public class OkHttpUtils {
private Handler handler=new Handler();
public Handler getHandler(){
return handler;
}
//单例
private static OkHttpUtils okHttpClient=new OkHttpUtils();
private OkHttpUtils(){};
public static OkHttpUtils getInstance(){
return okHttpClient;
}
private OkHttpClient client;
private void initOkHttpClient(){
client=new OkHttpClient.Builder().build();
}
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 OkHttpCallback 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(Call call, IOException e) {
onFailed(call,e);
}
@Override
public void onResponse(Call call, 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();
}
}
});
}
}
private Handler handler=new Handler();
public Handler getHandler(){
return handler;
}
//单例
private static OkHttpUtils okHttpClient=new OkHttpUtils();
private OkHttpUtils(){};
public static OkHttpUtils getInstance(){
return okHttpClient;
}
private OkHttpClient client;
private void initOkHttpClient(){
client=new OkHttpClient.Builder().build();
}
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 OkHttpCallback 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(Call call, IOException e) {
onFailed(call,e);
}
@Override
public void onResponse(Call call, 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();
}
}
});
}
}