Async-httpclient它是一个用于Android应用程序开发http访问开源框架。开源GitHub在,因为今天GitHub下载没有看到。我在这里提供下载地址。是之前从GitHub上下载的,版本号是V1.4.5。GitHub上还是有非常多开发者提供了http訪问的封装类,可是个人认为Async-httpclient写的非常不错。所以就总结下该开源包中的代码结构和调用方式。

Async-httpclient开源包中提供http的同步和异步訪问,http的get、post、set、delete等方法。在调用http訪问接口时针对传入不同的回调接口。返回数据也进行了不同的封装,待细致阅读源代码之后,将会明了。

当解开资源包之后,?\library\src\main\java\com\loopj\android\http该文件夹下就是作者写的源代码了,就仅仅有27个类,这里建议将?

\library\src\main\java\文件夹下的文件夹com拷贝至Androidproject的根文件夹下。并将其设置为“use as source folder”。这样在写调用样例的时候,就能去边看源代码边写代码了。

源代码包中基本的类有

AsyncHttpClient.java异步http訪问类

SyncHttpClient.java同步http訪问类

AsyncHttpRequest.java继承Runnable对象。真实訪问http的线程

ResponseHandlerInterface.javahttp訪问回调接口,有非常多子类,分别对返回数据进行了封装

主要就是这个4大类,其余的还有https的证书自己定义类、http重定向、base64、cookie的保存、http訪问重试次数的设定等等。

这些须要的时候能够加入。

在阅读源代码时,ResponseHandlerInterface的子类众多,体验了一把什么是重载和覆写!

这才是面向对象编程的思想。接下来一个简单的样例能看出使用此开源包的代码之简洁,能够少写非常多不必要的反复代码。

ResponseHandlerInterface的子类关系例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW5kcm9pZF9kb25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

在实际的开发中建议http訪问实例写成单例。

public class MainActivity extends Activity {

	private static AsyncHttpClient mHttpClient = new AsyncHttpClient();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getData() ;
} public void getData(){
mHttpClient.get("http://www.baidu.com", responseHandler) ;
} AsyncHttpResponseHandler responseHandler = new AsyncHttpResponseHandler() { @Override
public void onSuccess(int statusCode, Header[] headers,byte[] responseBody) {
for(Header header :headers){
Log.e("onSuccess","" + header.getName() + " = " + header.getValue()) ;
}
Log.e("onSuccess","statusCode = " + statusCode + ", responseBody = " + new String(responseBody)) ;
} @Override
public void onFailure(int statusCode, Header[] headers,byte[] responseBody, Throwable error) {
for(Header header :headers){
Log.e("onFailure","" + header.getName() + " = " + header.getValue()) ;
}
Log.e("onFailure","statusCode = " + statusCode + " ,responseBody = " + responseBody) ;
}
} ;
}

版权声明:本文博主原创文章。博客,未经同意不得转载。

Andorid Async-HttpClient阅览的更多相关文章

  1. 使用C# HttpWebRequest进行多线程网页提交。Async httpclient/HttpWebRequest实现批量任务的发布及异步提交和超时取消

    使用线程池并发处理request请求及错误重试,使用委托处理UI界面输出. http://www.cnblogs.com/Charltsing/p/httpwebrequest.html for (i ...

  2. Flutter -------- 网络请求之HttpClient

    今天来说说Flutter中的网络请求,HttpClient网络请求,包含get,post get var data; _get() async { Map newTitle; var response ...

  3. dart入门指南

    近来,flutter的热度在上升.flutter应用的主要开发语言是dart, 因此,欲练flutter, 必先了解dart. dart是由google开发的编程语言,可用于开发移动应用,桌面应用,h ...

  4. utilize HttpClient to generate a SSL access and generate REST access to fetch data, async programming? cool and brief

    WebRequestHandler handler = new WebRequestHandler(); try { X509Certificate2 certificate = new X509Ce ...

  5. async & await 的前世今生(Updated)

    async 和 await 出现在C# 5.0之后,给并行编程带来了不少的方便,特别是当在MVC中的Action也变成async之后,有点开始什么都是async的味道了.但是这也给我们编程埋下了一些隐 ...

  6. [.NET] 利用 async & await 的异步编程

    利用 async & await 的异步编程 [博主]反骨仔 [出处]http://www.cnblogs.com/liqingwen/p/5922573.html  目录 异步编程的简介 异 ...

  7. [.NET] 怎样使用 async & await 一步步将同步代码转换为异步编程

    怎样使用 async & await 一步步将同步代码转换为异步编程 [博主]反骨仔 [出处]http://www.cnblogs.com/liqingwen/p/6079707.html  ...

  8. await and async

    Most people have already heard about the new “async” and “await” functionality coming in Visual Stud ...

  9. ASP.NET 中的 Async/Await 简介

    本文转载自MSDN 作者:Stephen Cleary 原文地址:https://msdn.microsoft.com/en-us/magazine/dn802603.aspx 大多数有关 async ...

随机推荐

  1. UVAlive 2519 Radar Installation (区间选点问题)

    Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. ...

  2. IE 加速插件之 Google Chrome Frame

    前言 IE 8 及以下版本的速度较慢. 特别是前端的js 和 css 内容较多时尤为突出. 就笔者的开发经验来说GWT, Ext JS, raphael , draw2d 等开发的系统在IE下使用是相 ...

  3. hdu2063+hdu1083(最大匹配数)

    传送门:hdu2063过山车 #include <cstdio> #include <cstring> #include <string> #include < ...

  4. Urban Dictionary: psd

    Urban Dictionary: psd psd Share on twitter Share on facebook Share on more 3 up, 1 down It means Poo ...

  5. jvm(13)-线程安全与锁优化(转)

    0.1)本文部分文字转自“深入理解jvm”, 旨在学习 线程安全与锁优化 的基础知识: 0.2)本文知识对于理解 java并发编程非常有用,个人觉得,所以我总结的很详细: [1]概述 [2]线程安全 ...

  6. C/S与B/S谁与争锋之我见

    看到网上有些人在讨论C/S架构和B/S架构以及它们的发展趋势,后起之秀B/S是否真将取代C/S而存在?在发表我的观点之前,我们先来一起来回顾下C/S以及B/S. 一C/S 1.C/S概念 C/S是Cl ...

  7. jconsole线程面板中的阻塞总数和等待总数(转)

    阻塞总数 Blocked count is the total number of times that the thread blocked to enter or reenter a monito ...

  8. windows phone (20) Image元素

    原文:windows phone (20) Image元素 之前有说道wp目前支持的图片格式为png和jpeg ,我们可以通过设置Source属性设置图片源,下面要说的是Iamge元素的部分属性,这就 ...

  9. jsp的原则执行

    什么时候server一对JSP页面运行时,第一个请求,server向上JSP引擎首先JSP页的文件翻译成Java文件.那么这Java文件编译的字节码文件..而当这个JSP页面再次被请求运行时,JSP引 ...

  10. [TroubleShooting]&#39;trn\bak&#39; is incorrectly formed. SQL Server cannot process this media family.

     SQL Server online consultants came across an interesting scenario where one of our client was una ...