Android-AsyncHttpClient网络框架

android-async-http简介 :

  • Android中收集要求一样平常应用Apache HTTP Client或采纳HttpURLConnect,然则间接应用那两个类库须要写大批的代码才干完成收集post战get要求,而应用android-async-http那个库能够大大的简化操。

android-async-http特性:

  • 采用异步http请求,并通过匿名内部类处理回调结果
  • http请求独立在UI主线程之外
  • 采用线程池来处理并发请求
  • 采用RequestParams类创建GET/POST参数
  • 不需要第三方包即可支持Multipart file文件上传
  • 大小只有25kb
  • 自动为各种移动电话处理连接断开时请求重连
  • 超快的自动gzip响应解码支持
  • 使用BinaryHttpResponseHandler类下载二进制文件(如图片)
  • 使用JsonHttpResponseHandler类可以自动将响应结果解析为json格式
  • 持久化cookie存储,可以将cookie保存到你的应用程序的SharedPreferences中

主要类介绍:

  • AsyncHttpRequest:

继承自Runabler,被submit至线程池执行网络请求并发送start,success等消息。

  • AsyncHttpResponseHandler:

接收请求结果,一般重写onSuccess及onFailure接收请求成功或失败的消息。

  • TextHttpResponseHandler:

继承自AsyncHttpResponseHandler,只是重写了AsyncHttpResponseHandler的onSuccess和onFailure方法,将请求结果由byte数组转换为String。

  • JsonHttpResponseHandler:

继承自TextHttpResponseHandler,同样是重写onSuccess和onFailure方法,将请求结果由String转换为JSONObject或JSONArray

  • BaseJsonHttpResponseHandler:

继承自TextHttpResponseHandler,是一个泛型类,提供了parseResponse方法,子类需要提供实现,将请求结果解析成需要的类型,子类可以灵活地使用解析方法,可以直接原始解析,使用gson等。

  • RequestParams:

请求参数,可以添加普通的字符串参数,并可添加File,InputStream上传文件。

  • SyncHttpClient:

继承自AsyncHttpClient,同步执行网络请求,AsyncHttpClient把请求封装成AsyncHttpRequest后提交至线程池,SyncHttpClient把请求封装成AsyncHttpRequest后直接调用它的run方法。

请求流程:

1、调用AsyncHttpClient的get或post等方法发起网络请求。

2、所有的请求都走了sendRequest,在sendRequest中把请求封装为了AsyncHttpRequest,并添加到线程池执行。

3、当请求被执行时(既AsyncHttpRequest的run方法),执行AsyncHttpRequest的makeRequestWithRetries方法执行实际的请求,当请求访问失败时可以重试。并在请求开始,结束,成功或失败的时候请求时传的ResponseHandlerInterface实例发送消息.

4、基本上使用的都是AsyncHttpResponseHandler的子类,调用其onStart,onSuccess等方法返回请求结果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章