工具类——基于原生的okhttp的post请求
2017-03-06 16:49
357 查看
public class OkHttpUtils { private static final byte[] LOCKER = new byte[0]; private static OkHttpUtils mInstance; private OkHttpClient mOkHttpClient; private Handler handler = new Handler(Looper.getMainLooper()); private OkHttpUtils() { OkHttpClient.Builder ClientBuilder = new OkHttpClient.Builder(); ClientBuilder.readTimeout(15, TimeUnit.SECONDS);//读取超时 ClientBuilder.connectTimeout(20, TimeUnit.SECONDS);//连接超时 ClientBuilder.writeTimeout(20, TimeUnit.SECONDS);//写入超时 mOkHttpClient = ClientBuilder.build(); } public static OkHttpUtils getInstance() { if (mInstance == null) { synchronized (LOCKER) { if (mInstance == null) { mInstance = new OkHttpUtils(); } } } return mInstance; } public void okhttpPost(String url, RequestBody requestBody, final MyHttpCallback callback) { if (requestBody == null) { requestBody = new FormBody.Builder().build(); } final Request request = new Request.Builder() .url(url) .post(requestBody) .build(); Call call = mOkHttpClient.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { onError(callback, e.toString()); } @Override public void onResponse(Call call, Response response) throws IOException { onSuccess(callback, response.body().string()); } }); } private void onSuccess(final MyHttpCallback callback, final String data) { if (null != callback) { handler.post(new Runnable() { public void run() { // 需要在主线程的操作。 callback.onSuccess(data); } }); } } private void onError(final MyHttpCallback callback, final String msg) { if (null != callback) { handler.post(new Runnable() { public void run() { // 需要在主线程的操作。 callback.onError(msg); } }); } } /** * http请求回调 * * @author Flyjun */ public interface MyHttpCallback { // 成功回调 void onSuccess(String response); // 失败回调 void onError(String msg); } }
相关文章推荐
- 基于鸿洋okhttp封装工具类okhttputils 返回数据回调封装
- 基于okhttp3的工具类HttpUtils
- 基于okhttp3的工具类HttpUtils
- 基于java原生的zip工具类
- [置顶] 优雅设计封装基于Okhttp3的网络框架(完):原生HttpUrlConnction请求、多线程分发 及 数据转换
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台五(C#开发)-通用工具类
- Android快捷便利但不常被使用的原生工具类
- Redis学习(三)-Java实现基于Jedis+Spring的通用工具类
- 基于原生PHP的路由分配实现(zhuan)
- 基于ansj_seg和nlp-lang的简单nlp工具类
- 基于SSH2增删改查_工具类Util(5)
- 基于AFNetworking封装的网络请求工具类
- 基于httpClient的HttpClientUtil工具类
- okhttp3Util工具类二次封装//及拦截器添加公共参数
- Android基于Retrofit2.0 封装的超好用的RetrofitClient工具类(完美结合RxJava)
- okhttp封装工具类
- Android基于Retrofit2.0 +RxJava 封装的超好用的RetrofitClient工具类(六)
- OkHttp工具类
- 基于JSch的Sftp工具类
- 原生Js基于HTML5 FileReader&canvas制作的banner广告图片插件