本帖最后由 Android_Robot 于 2016-10-26 15:16 编辑
网络连接/URL访问的开源框架android-async-http-master android-async-http-master,是Android的一个开源项目 ,这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通过回调方法处理请求结果。
其主要特征如下:
处理异步Http请求,并通过匿名内部类处理回调结果;
Http请求均位于非UI线程,不会阻塞UI操作;
通过线程池处理并发请求;
处理文件上传、下载;
响应结果自动打包JSON格式;
自动处理连接断开时请求重连;
1.下载【回帖可见】:
2.导包:
a.导源码:将\library\src下的文件夹全部复制粘贴放入项目的src下
b.导JAR包:将\releases下的相应版本的jar包复制粘贴到项目的libs目录下
3.使用:
注意是异步的,不能放在子线程中使用。
GET:
在需要进行的网络连接的代码处:
1.对url地址进行url编码
2.创建客户端对象 new AsyncHttpClient();
3.调用get方法,须要2个参数,一是请求地址,二是实现一个“异步http响应处理器”的接口AsyncHttpResponseHandler;
4.覆盖接口中的onSuccess和onFailure方法
onSuccess(intstatusCode ,Header[] headers,byte[]responseBody){
}
onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error)
参数都是服务器返回的响应体的关键内容:
int statusCode:响应的状态码
Header[] headers:响应头的内容
byte[]responseBody:响应体,返回的内容的正文,将之转化为所求/可见的数据
Throwable error:如果请求失败返回的抛出的异常
4.总结:
此包是异步的http网络连接,可以直接在AsyncHttpResponseHandler接口的回调函数中进行UI的更新,而不用将消息发送给主线程处理UI更新
onSuccess(…){findViewById(R.id.tv); tv.setText(“text”);}
Post:
流程基本相同,不过需要封装请求参数:
1.创建请求参数对象params,此类封装了一个HashMap<String,String>来存储kv对
new RequestParams();
2.向params添加键值对
params.put(“pwd”,pwd);
3.client对象调用post方法发送post请求
client.post(path,params,newAsyncHttpResponseHandler(){});
更详细的框架解析请移步:网络连接/URL访问的开源框架android-async-http-master
更多资源分享:
【强荐!】2016年最新Android学习路线图——按此路线图学习月薪过万{ 火速收入}
[持续更新]2016最新Android视频教程+源码+技巧/经验+软件+面试 Android应用层View绘制流程与源码分析
Andriod案例源码分享--Android_系统UI布局以及设计规则 送给老婆的小礼物 闹钟 备忘录 android源码 |