用法很简单直接调用(url,参数,new callback)
/** * Created by Administrator on 2016/7/10 0010. */ public class OKHttpUtils { public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8"); /** * 回调接口便于修改框架 * * @param <T> */ public interface RequestCallBack<T> { void onSuccess(T result); void onFailure(String error); } private static OkHttpClient client = new OkHttpClient(); private static Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 1) { ((RequestCallBack) msg.obj).onSuccess(msg.getData().getString("data")); } else { ((RequestCallBack) msg.obj).onFailure(msg.getData().getString("error")); } } }; /** * get请求 */ public static String get(String url, final RequestCallBack requestCallBack) { Request request = new Request.Builder() .url(url) .addHeader("api-key", "j=pp=ytGv6nso1uJMYa37ouT=kk=") .get() .cacheControl(CacheControl.FORCE_NETWORK) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { if (requestCallBack != null) { Message message = Message.obtain(); Bundle bundle = new Bundle(); bundle.putString("error", e.getMessage()); message.setData(bundle); message.what = 0; message.obj = requestCallBack; handler.sendMessage(message); } } @Override public void onResponse(Response response) { if (requestCallBack != null) { String s = ""; try { s = response.body().string(); } catch (IOException e) { e.printStackTrace(); } Message message = Message.obtain(); Bundle bundle = new Bundle(); bundle.putString("data", s); message.setData(bundle); message.what = 1; message.obj = requestCallBack; handler.sendMessage(message); } } }); return url; } /** * post无参请求 */ public static void post(String url, final RequestCallBack requestCallBack) { Request request = new Request.Builder() .url(url) .addHeader("api-key", "j=pp=ytGv6nso1uJMYa37ouT=kk=") .cacheControl(CacheControl.FORCE_NETWORK) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { if (requestCallBack != null) { Message message = Message.obtain(); Bundle bundle = new Bundle(); bundle.putString("error", e.getMessage()); message.setData(bundle); message.what = 0; message.obj = requestCallBack; handler.sendMessage(message); } } @Override public void onResponse(Response response) { if (requestCallBack != null) { String s = ""; try { s = response.body().string(); } catch (IOException e) { e.printStackTrace(); } Message message = Message.obtain(); Bundle bundle = new Bundle(); bundle.putString("data", s); message.setData(bundle); message.what = 1; message.obj = requestCallBack; handler.sendMessage(message); } } }); } /** * post 请求 * * @param url * @param requestJson * @param requestCallBack */ public static void post(String url, JSONObject requestJson, final RequestCallBack requestCallBack) { RequestBody body = RequestBody.create(JSON, requestJson.toString()); Request request = new Request.Builder() .url(url) .addHeader("api-key", "j=pp=ytGv6nso1uJMYa37ouT=kk=") .post(body) .cacheControl(CacheControl.FORCE_NETWORK) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { if (requestCallBack != null) { Message message = Message.obtain(); Bundle bundle = new Bundle(); bundle.putString("error", e.getMessage()); message.setData(bundle); message.what = 0; message.obj = requestCallBack; handler.sendMessage(message); } } @Override public void onResponse(Response response) { if (requestCallBack != null) { String s = ""; try { s = response.body().string(); } catch (IOException e) { e.printStackTrace(); } Message message = Message.obtain(); Bundle bundle = new Bundle(); bundle.putString("data", s); message.setData(bundle); message.what = 1; message.obj = requestCallBack; handler.sendMessage(message); } } }); } }