OKhttp的异步get和post烦人封装
来源:互联网 发布:js 设置按钮失效 编辑:程序博客网 时间:2024/05/16 09:50
public class OkHttpUtils { private static OkHttpUtils okHttpUtils; private static Handler handler = new Handler(); //私有化构造方法 private OkHttpUtils(){ } /** * 获取OkhttpCLient的实例方法 * @return */ /*public static OkHttpClient getInstance(){//懒汉式 if(null == okHttpClient){ synchronized (OkHttpUtils.class){ if(null == okHttpClient) okHttpClient = new OkHttpClient(); } } return okHttpClient; }*/ /** * 得到这个OKHttpUtils实例 * @return */ public static OkHttpUtils getInstance(){ if(null == okHttpUtils){ synchronized (OkHttpUtils.class){ if(null == okHttpUtils) okHttpUtils = new OkHttpUtils(); } } return okHttpUtils; } /** * 封装的异步Get请求 * @param path * @param */ public void doGet(String path,Map<String,String> map,final LoginCallBack loginCallBack){ //创建一个字符串容器 StringBuilder sb = null;//new StringBuilder();//线程非安全 for (String key : map.keySet()) { //"mobile="+value+"&paword="+value http://www.baidu.com?"mobile="+value+"&paword="+value //sb.append(key).append("=").append(map.get(key)).append("&");//moble=value& if(null == sb){ sb = new StringBuilder(); sb.append("?"); }else{ sb.append("&"); } sb.append(key).append("=").append(map.get(key)); } Request request= new Request.Builder() .url(path+sb.toString())//http://www.baidu.com?"mobile="+value+"&paword="+value .get() .build(); //OkHttp 网络 OkHttpClient okHttpClient = new OkHttpClient(); Call call = okHttpClient.newCall(request); //异步请求 call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { //子线程的 handler.post(new Runnable() { @Override public void run() { //失败 loginCallBack.onFailed(e.getMessage()); } }); } @Override public void onResponse(Call call, final Response response) throws IOException { handler.post(new Runnable() { @Override public void run() { try { loginCallBack.onSuccess(response.body().string()); } catch (IOException e) { e.printStackTrace(); } } }); } }); } /** * 异步post请求封装 * @param path * @param map * @param loginCallBack */ public static void doPost(String path, Map<String,String> map, final LoginCallBack loginCallBack){ //构建请求参数 FormBody.Builder bodyBuilder = new FormBody.Builder(); for (String key : map.keySet()) { bodyBuilder.add(key,map.get(key)); } Request request = new Request.Builder() .post(bodyBuilder.build()) .url(path) .build(); OkHttpClient okHttpClient = new OkHttpClient(); okHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { //失败 //子线程的 handler.post(new Runnable() { @Override public void run() { //失败 loginCallBack.onFailed(e.getMessage()); } }); } @Override public void onResponse(Call call, final Response response) throws IOException { handler.post(new Runnable() { @Override public void run() { try { loginCallBack.onSuccess(response.body().string()); } catch (IOException e) { e.printStackTrace(); } } }); } }); }}
阅读全文
0 0
- OKhttp的异步get和post烦人封装
- OkHttp get和post封装
- 简单封装okhttp的get和post方法
- 封装OKHttp的get和post请求模版
- OkHttp的使用--GET/POST(异步)
- OkHttp的get/post同步异步请求
- OkHttp get post请求的封装
- OkHttp的Get和Post
- OkHttp学习(1)-->>同步和异步(get、post键值对、post带map、请求头体封装json)
- Okhttp 异步get post 请求
- OKHttp异步get,post请求和同步请求
- OkHttp GET 和 POST 的使用
- OkHttp GET 和 POST 的使用
- OkHttp GET 和 POST 的使用
- OkHttp GET 和 POST 的使用
- Okhttp和Retrofit的get,post请求
- OKhttp的get请求和post请求
- Okhttp的post和get请求数据
- Mac 环境下 CMake 安装
- 【Java】5.PriorityBlockingQueue使用与分析
- Q
- Dagger2的简单使用
- AWSCE2搭建PPTP VPN服务器
- OKhttp的异步get和post烦人封装
- gq arm汇编
- MvP_retrofit的封装
- C__va_list变参数处理
- 疯狂Activiti6.0连载(25)BPMN结束事件
- 上拉刷新
- 用java语言实现从文本文件导入一批学生信息的数据到数据库中,1.并完成数据的增删改查,同时导出简单的报表,2.查询籍贯属于黑龙江省的所有学生,并按照生日排序,查询结果导出为csv文件。
- C语言复习
- hdu 1502