A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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源码

7 个回复

倒序浏览
写谢谢谢,学习了
回复 使用道具 举报
感谢分享!!!
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
网络连接/URL访问的开源框架android-async-http-master
回复 使用道具 举报
感谢分享
回复 使用道具 举报
32636363636
回复 使用道具 举报
baby14 金牌黑马 2018-10-18 07:55:53
8#
多谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马