开源项目之android-async-http开源库
来源:互联网 发布:淘宝网店爆款打造 pdf 编辑:程序博客网 时间:2024/06/03 13:18
android-async-http简介
开源项目链接
android-async-http仓库:git clone https://github.com/loopj/android-async-http
android-async-http主页:http://loopj.com/android-async-http/
背景知识
开始使用分析前还是先了解下Android的HTTP一些过往趣事:
关于Android HTTP推荐的Google官方链接
HttpClient拥有众多的API,实现稳定,bug很少。
HttpURLConnection是一种多用途、轻量的HTTP客户端,使用它来进行HTTP操作可以适用于大多数的应用程序。HttpURLConnection的API比较简单、扩展容易。不过在Android 2.2版本之前,HttpURLConnection一直存在着一些bug。
比如说对一个可读的InputStream调用close()方法时,就有可能会导致连接池失效了。所以说2.2之前推荐使用HttpClient,2.2之后推荐HttpURLConnection。
好了,那现在话又说回来,在android-async-http中使用的是HttpClient。哎…好像在Volley中分析过Volley对不同版本进行了判断,所以针对不同版本分别使用了HttpClient和HttpURLConnection。还是google牛逼啊!
回过神继续android-async-http吧,不瞎扯了。android-async-http是专门针对Android在Apache的HttpClient基础上构建的异步http连接。所有的请求全在UI(主)线程之外执行,而callback使用了Android的Handler发送消息机制在创建它的线程中执行。
类似Volley一样,使用一个优秀框架之前就是必须得先知道他的特性,如下就是android-async-http的特性:
发送异步http请求,在匿名callback对象中处理response信息;http请求发生在UI(主)线程之外的异步线程中;内部采用线程池来处理并发请求;通过RequestParams类构造GET/POST;内置多部分文件上传,不需要第三方库支持;流式Json上传,不需要额外的库;能处理环行和相对重定向;和你的app大小相比来说,库的size很小,所有的一切只有90kb;在各种各样的移动连接环境中具备自动智能请求重试机制;自动的gzip响应解码;内置多种形式的响应解析,有原生的字节流,string,json对象,甚至可以将response写到文件中;永久的cookie保存,内部实现用的是Android的SharedPreferences;通过BaseJsonHttpResponseHandler和各种json库集成;支持SAX解析器;支持各种语言和content编码,不仅仅是UTF-8;
整体操作流程
android-async-http最简单基础的使用只需如下步骤:
创建一个AsyncHttpClient;(可选的)通过RequestParams对象设置请求参数;调用AsyncHttpClient的某个get方法,传递你需要的(成功和失败时)callback接口实现,一般都是匿名内部类,实现了AsyncHttpResponseHandler,类库自己也提供许多现成的response handler,你一般不需要自己创建。
- 开源项目之Android async-http
- 开源项目之android-async-http开源库
- 关于开源项目android-async-http
- 开源项目之Android async-http(异步 HTTP 客户端开发包)
- android开发步步为营之67:使用android开源项目android-async-http异步下载文件
- android-async-http开源项目介绍及使用方法
- android-async-http开源项目介绍及使用方法
- android-async-http开源项目介绍及使用方法
- android-async-http开源项目介绍及使用方法
- android-async-http开源项目介绍及使用方法
- Android之Async-http
- Android 开源框架之 Android-async-http 源码解读
- Android 开源框架之 Android-async-http 源码解读
- Android 开源框架之 Android-async-http 源码解读
- 开源框架android-async-http使用
- 开源框架android-async-http使用
- 开源框架android-async-http使用
- 开源框架android-async-http使用
- HDU3336 Count the string(KMP,next的性质)
- VMware VMotion迁移与原理
- R.styleable找不到资源或者是报错
- java的学习笔记
- Docker容器简要说明
- 开源项目之android-async-http开源库
- js学习笔记(一)
- Leetcode(W2):349. Intersection of Two Arrays
- C++中函数在内存中的分布情况
- (五)数据结构之静态查找的简单实现:顺序查找和二分查找
- usercf 与 itemcf的原理分析
- Java代理模式及应用(一)代理模式介绍
- python 访问字典
- Win7 搭建MySQL集群