热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android异步的HTTP客户端

下载1.4.3版本(最新)或者我在github上餐桌概观基于异步回调HTTP客户端的Android内置Apache的HttpClient的库顶。您的应
下载 1.4.3版本(最新)

或者我在github上餐桌


概观

基于异步回调HTTP客户端的Android内置Apache的HttpClient的库顶 。您的应用程序的主UI线程之外的所有请求,但使用Android的处理程序消息传递创建回调将在同一线程上执行任何的回调逻辑。

特点


  • 异步的 HTTP请求,处理响应匿名回调
  • HTTP请求发生在UI线程之外
  • 请求使用一个线程池使用并发资源封顶
  • GET / POST PARAMS建设者(RequestParams)
  • 没有额外的第三方库的多部分文件上传
  • 微小的尺寸到您的应用程序的开销,只有25KB的一切
  • 优化的为参差不齐移动连接的智能自动请求重试
  • 自动gzip响应的解码支持超快的请求
  • 二进制文件(图像等)与BinaryHttpResponseHandler下载
  • 内置响应解析成JSON JsonHttpResponseHandler
  • 持久性COOKIE存储,保存到你的应用程序的SharedPreferences里的饼干

热门应用程序和开发人员在生产中使用


Instagram的
Instagram的第1张照片的应用程序在Android上,有超过1000万用户
Pinterest的
热门在线插接。组织和共享你所爱的东西。
前线突击队谷氨酸(Glu游戏)
#1第一人称射击游戏,在Android上,由Glu游戏。
Heyzap
社交游戏与数以百万计的用户发现应用程序
提出
姿势是排名第一的时尚应用程序共享和发现新的风格
数以千计的应用程序...
异步HTTP在生产中使用由数千顶部的应用程序。


安装及基本用法

从github上下载最新的jar文件,并将其放置在您的Android应用程序的 库/文件夹。

导入的http包装。

导入 com.loopj.android.http。* ;

创建一个新的AsyncHttpClient实例,并提出一个请求:

AsyncHttpClient client = new AsyncHttpClient();
client.get("http://www.google.com", new AsyncHttpResponseHandler() {@Overridepublic void onSuccess(String response) {System.out.println(response);}
});


推荐用途:做一个静态的HTTP客户端

在这个例子中,我们将一个HTTP客户端类的静态访问,使其易于沟通Twitter的API。

导入 com.loopj.android.http。* ;的公共 类 TwitterRestClient { 私人 静态 最终 字符串 BASE_URL = “http://api.twitter.com/1/的;私人 静态 AsyncHttpClient 客户端 = 新 AsyncHttpClient ();public static void get(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {client.get(getAbsoluteUrl(url), params, responseHandler);}public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {client.post(getAbsoluteUrl(url), params, responseHandler);}私人 静态 字符串 getAbsoluteUrl (弦乐 relativeUrl ) { 回报 BASE_URL + relativeUrl ; }
}

这使得它很容易在你的代码中使用Twitter的API:

进口 ORG JSON。* ;
进口 com.loopj.android.http * ;第一个事件公共时间轴的JSONObject firstEvent = 时间表得到(0 ); 弦乐 tweetText = firstEvent 的getString (“文本” );/ /做一些与响应系统。出来。调用println (tweetText ); } }); }
}

退房 AsyncHttpClient, RequestParams AsyncHttpResponseHandler Javadoc中更多的细节。

永久性的COOKIE存储与PersistentCOOKIEStore

这个库还包括一个PersistentCOOKIEStore这是一个实施Apache HttpClient的COOKIEStore的自动保存COOKIEs来SharedPreferences里 存储在Android设备上的接口。

这是非常有用的,如果你要使用COOKIEs来管理,因为用户身份验证会话保持登录后,即使关闭并重新打开你的应用程序。

首先,创建的一个实例AsyncHttpClient:

AsyncHttpClient MyClient的 =: 新 AsyncHttpClient ();

现在设置客户端的COOKIE存储的活动或应用程序上下文(通常就足够了),构造一个新实例 PersistentCOOKIEStore:

PersistentCOOKIEStore myCOOKIEStore = new PersistentCOOKIEStore(this);
myClient.setCOOKIEStore(myCOOKIEStore);

现在将存储在持久性COOKIE存储从服务器收到任何COOKIE。

要添加自己的饼干到店里,简单地构造一个新的COOKIE和呼叫的addCOOKIE:

BasicClientCOOKIE newCOOKIE = new BasicClientCOOKIE("COOKIEsare", "awesome");
newCOOKIE.setVersion(1);
newCOOKIE.setDomain("mydomain.com");
newCOOKIE.setPath("/");
myCOOKIEStore.addCOOKIE(newCOOKIE);

参见更多信息的PersistentCOOKIEStore Javadoc。

添加GET / POST参数RequestParams

RequestParams类可选GET或POST参数用于添加到您的要求。RequestParams可以建成,并以各种方式建造:

创建空RequestParams和立即加入一些参数:

RequestParams PARAMS = 新 RequestParams ();
PARAMS 。把(“钥匙” , “价值” );
PARAMS 。把(“多” , “数据” );

创建为单个参数RequestParams:

RequestParams PARAMS =: 新 RequestParams (“单一” , “价值” );

从现有地图的键/值字符串创建RequestParams:

HashMap paramMap = new HashMap();
paramMap.put("key", "value");
RequestParams params = new RequestParams(paramMap);

更多信息见RequestParams的Javadoc。

RequestParams上传文件

RequestParams类还支持多方文件上传,如下:

InputStream中添加上传RequestParams的:

InputStream myInputStream = blah;
RequestParams params = new RequestParams();
params.put("secret_passwords", myInputStream, "passwords.txt");

文件对象添加给RequestParams上传:

File myFile = new File("/path/to/file.png");
RequestParams params = new RequestParams();
try {params.put("profile_picture", myFile);
} catch(FileNotFoundException e) {}

字节数组添加上传RequestParams的:

byte[] myByteArray = blah;
RequestParams params = new RequestParams();
params.put("soundtrack", new ByteArrayInputStream(myByteArray), "she-wolf.mp3");

更多信息见RequestParams的Javadoc。

下载二进制数据BinaryHttpResponseHandler的

可用于BinaryHttpResponseHandler类提取二进制数据,如图像和其他文件。例如:

做一些与文件}
});

参见更多信息的BinaryHttpResponseHandler Javadoc。

添加HTTP基本身份验证凭据

有些要求可能需要用户名/密码,凭证处理时使用HTTP基本接入认证请求的API服务。您可以使用的方法setBasicAuth()提供您的凭据。

设置用户名/密码,任何一台主机和领域为特定的请求。默认情况下,认证范围是任何主机,端口和境界。

AsyncHttpClient client = new AsyncHttpClient();
client.setBasicAuth("username","password/token");
client.get("http://example.com");

您也可以提供一个更具体的认证范围(推荐)

AsyncHttpClient client = new AsyncHttpClient();
client.setBasicAuth("username","password", new AuthScope("example.com", 80, AuthScope.ANY_REALM));
client.get("http://example.com");

更多信息见RequestParams的Javadoc。

从源代码构建

要建立一个从源代码的jar文件,首先要android的异步HTTP github上库的克隆。然后,您需要复制 local.properties.dist的文件local.properties和编辑sdk.dir的 设置为指向,你必须安装Android SDK的。然后,您可以运行:

蚂蚁包

这将生成一个文件名 ??为安卓异步HTTP version.jar的

报告错误或功能要求

请报告任何错误或功能要求github的问题页面上为这个项目在这里:

https://github.com/loopj/android-async-http/issues

积分与提供者


詹姆斯?史密斯(http://github.com/loopj)
创建者和维护者
弥Fivecoate(http://github.com/m5)
主要贡献者,包括原RequestParams
Droid的富项目(https://github.com/kaeppler/droid-fu)
灵感和代码更好HTTP试
拉斐尔桑切斯(http://blog.rafaelsanches.com)
原始SimpleMultipartEntity代码
安东尼?佩尔绍德(http://github.com/apersaud)
增加了支持HTTP基本身份验证请求。
林登达林(http://github.com/coreform)
新增支持二进制/图像响应


许可证

Android的异步HTTP客户端下发布的Andr??oid友好的Apache许可证2.0版。在这里阅读完整的许可证:

http://www.apache.org/licenses/LICENSE-2.0

作者简介

詹姆斯?史密斯,英国的企业家和开发商,总部设在旧金山。

我的联合创始人西蒙?梅纳德Bugsnag,2009至2012年,我带领产品团队Heyzap首席技术官。


推荐阅读
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 代理模式的详细介绍及应用场景
    代理模式是一种在软件开发中常用的设计模式,通过在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象进行访问,从而简化系统的复杂性。代理模式可以根据不同的使用目的分为远程代理、虚拟代理、Copy-on-Write代理、保护代理、防火墙代理、智能引用代理和Cache代理等几种。本文将详细介绍代理模式的原理和应用场景。 ... [详细]
  • java drools5_Java Drools5.1 规则流基础【示例】(中)
    五、规则文件及规则流EduInfoRule.drl:packagemyrules;importsample.Employ;ruleBachelorruleflow-group ... [详细]
author-avatar
mobiledu2502885307
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有