public class NetUtil implements Callback {
private static NetUtil INSTANCE;
private final OkHttpClient okHttpClient;
private HttpUtilsCallback httpUtilsCallback;
private NetUtil() {
okHttpClient = new OkHttpClient.Builder().build();
}
public static NetUtil getInstance(){
if (INSTANCE==null){
INSTANCE = new NetUtil();
}
return INSTANCE;
}
public void doGet(String path,HttpUtilsCallback httpUtilsCallback){
this.httpUtilsCallback = httpUtilsCallback;
Request request = new Request.Builder()
.url(Constant.BASE_URL+path)
.build();
Call call = okHttpClient.newCall(request);
call.enqueue(this);
}
public void doPost(String path, HashMap<String,String> map,HttpUtilsCallback httpUtilsCallback){
this.httpUtilsCallback = httpUtilsCallback;
FormBody.Builder builder = new FormBody.Builder();
Iterator<String> iterator = map.keySet().iterator();
while (iterator.hasNext()){
String key = iterator.next();
String value = map.get(key);
builder.add(key,value);
}
FormBody body = builder.build();
Request request = new Request.Builder()
.url(Constant.BASE_URL+path)
.post(body)
.build();
Call call = okHttpClient.newCall(request);
call.enqueue(this);
}
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
httpUtilsCallback.onSuccess(string);
}
}
接口:
public interface HttpUtilsCallback {
void onSuccess(String success);
void onFail(int errCode,String errMsg);
}