OKHTTP封装使用
2015-08-31 16:32
465 查看
最近比较火的是OKhttp+picasso解析混合使用
接下来我们先上Okhttp抓抓数据。
1.okhttp的get请求封装
直接上代码:
至于Handler里面怎么拿自行脑补。
2.Okhttp的post请求封装
因为他传值是不定的,所以咱把FormEncodingBuilder 给抽出来另外加,这样想怎么传就怎么传,再者不知道他是成功还是失败,所以就弄了多的两个判断的。
3.post请求的参数方法
OKhttp暂时说到这里,有啥加的再上。
接下来我们先上Okhttp抓抓数据。
[code]显然Okhttp里面的那个onResponse 和 onFailure是非UI线程,那么我们改变他的话只有发送个通知出来让其他的UI线程来处理UI变化了,这个时候,屌丝王Handler出场了。
1.okhttp的get请求封装
直接上代码:
[code] public static final int ok_error = -1; public static final int ok_success = 1; /** * okhttp Post请求方式 */ public static void OKdoGet(String url, final Handler handler) { OkHttpClient client = new OkHttpClient(); final Request request = new Request.Builder().url(url).build(); // new call Call call = client.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { handler.sendEmptyMessage(ok_error); } @Override public void onResponse(final Response response) throws IOException { String resultStr = response.body().string(); Message msg = new Message(); msg.what = ok_success; msg.obj = resultStr; handler.sendMessage(msg); } }); }
至于Handler里面怎么拿自行脑补。
2.Okhttp的post请求封装
[code]/** * Post请求的封装 */ public static void OKdoPost(String url, final Handler handler, FormEncodingBuilder builder) { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().url(url).post(builder.build()) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Request arg0, IOException arg1) { handler.sendEmptyMessage(ok_error); } @Override public void onResponse(Response arg0) throws IOException { String resultStr = arg0.body().string(); Message msg = new Message(); msg.what = ok_success; msg.obj = resultStr; handler.sendMessage(msg); } }); } /** * Post请求的封装 */ public static void OKdoPostWithCode(String url, final Handler handler, FormEncodingBuilder builder, final int success, final int error) { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().url(url).post(builder.build()) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Request arg0, IOException arg1) { handler.sendEmptyMessage(error); } @Override public void onResponse(Response arg0) throws IOException { String resultStr = arg0.body().string(); Message msg = new Message(); msg.what = success; msg.obj = resultStr; handler.sendMessage(msg); } }); }
因为他传值是不定的,所以咱把FormEncodingBuilder 给抽出来另外加,这样想怎么传就怎么传,再者不知道他是成功还是失败,所以就弄了多的两个判断的。
3.post请求的参数方法
[code] /** * post请求 */ FormEncodingBuilder builder = new FormEncodingBuilder(); builder.add("sj_id", "1"); builder.add("xx", "1"); builder.add("page", page + ""); builder.add("oauth_token", "f5fbefc2bd9f538c3010fd24f57eb536"); OkHttpUtil.OKdoPost(ContextUrl.url, handler, builder);//Post请求方法调用 /** * post请求 带请求码 */ FormEncodingBuilder builder = new FormEncodingBuilder(); builder.add("sj_id", "1"); builder.add("xx", "1"); builder.add("page", page + ""); builder.add("oauth_token", "f5fbefc2bd9f538c3010fd24f57eb536"); OkHttpUtil.OKdoPostWithCode(ContextUrl.url, handler, builder, 3, 4);
OKhttp暂时说到这里,有啥加的再上。
相关文章推荐
- tomcat http 文件下载
- Android 网络编程——HTTP概述
- AsyncHttpClient方式异步发送http请求
- TCP协议与流通信
- HDU1532 - Drainage Ditches 网络流之最大流
- Java利用Tomcat作为服务器与Android的Http通信
- HttpClient4.X(httpcomponents)学习笔记
- 开源框架Android Asynchronous Http Client
- 企业网络的安全接入
- 高可用性网络
- Kail Linux渗透测试教程之网络扫描和嗅探工具Nmap
- Kail Linux渗透测试教程之网络扫描和嗅探工具Nmap
- Linux(Centos6.5)下安装svn服务器,并通过http访问
- 修改本地活动网络连接的DNS
- jsp调用javabean出现错误HTTP Status 500 - Unable to compile class for JSP
- 黑马程序员——Java基础——网络编程
- 网络基础知识
- HTTPS初体验
- android Volley框架 http请求
- 使用zlib模块实现HTTP服务端与客户端实现传输数据压缩