OKHttp网络请求封装好的框架
2016-11-18 11:03
295 查看
用法很简单直接调用(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); } } }); } }
相关文章推荐
- 安卓网络请求框架okHttp的使用与封装
- [置顶] 优雅设计封装基于Okhttp3的网络框架(完):原生HttpUrlConnction请求、多线程分发 及 数据转换
- Android--menu和OkHttp框架(未封装),结合Executors(线程池)实现网络请求的案例
- Android 的OkHttp 网络请求框架的学习封装
- 网络请求框架(二)----改善的okHttp封装库okhttputils的使用
- 完整的OKhttp请求封装的网络框架
- Android网络请求框架----Okhttp3完全解析(2),封装框架
- 基于OkHttp3封装网络请求框架
- okHttp网络请求框架get请求的封装
- Okhttp网络请求框架简析——Android网络请求框架(一)
- Android 2016最热网络请求开发框架之Okhttp ,facebook强烈推荐必备开发
- 一:网络请求框架封装范例-基于volley
- Android网络请求框架AsyncHttp二次封装
- 网络请求工具类之OkHttp3封装(二)上(支持请求取消、异步请求的线程切换)
- android网络框架OkHttp之get请求(源码初识)
- Android ——网络请求框架OkHttp使用
- Anroid-async-http封装网络请求框架源码分析
- OkHttpUtils一个专注于让网络请求更简单的框架
- 使用android-async-http来封装Android网络请求框架
- 网络请求工具类之OkHttp3封装(二)下(支持请求取消、异步请求的线程切换)