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); }