08_android入门_android-async-http开源项目介绍及用法
android-async-http开源项目可以是我们轻松的获取网络数据或者向server发送数据。使用起来很easy,关于android-async-http开源项目的介绍内容来自于官方:http://loopj.com/android-async-http/.以下我对此主页上内容进行大体上的翻译,希望可以对你理解android-async-http开源项目有所帮助
1.1 Overview(概况)
An asynchronous callback-based Http client for Android built on top of Apache’s HttpClient libraries.
All requests are made outside of your app’s main UI thread, but any callback logic will be executed on the same thread as the callback was created using Android’s Handler message passing.
译文:
异步基于回调的Httpclient为Android构建。是基于Apache HttpClient库的。全部的请求都是位于应用程序主线程 UI 之外,但不论什么回调逻辑将同样的线程上运行回调,使用Android的处理程序创建消息传递。
1.2 Features(特征)
- Make asynchronous HTTP requests, handle responses in anonymous
callbacks - 进行异步HTTP请求,处理响应在匿名回调中完毕
- HTTP requests happen outside the UI thread
- HTTP请求发生在UI线程之外
- Requests use a threadpool to cap concurrent resource usage
- 请求使用threadpool。限制并发资源使用情况
- GET/POST params builder (RequestParams)
- GET / POST參数构建使用(RequestParams)
- Multipart file uploads with no additional third party libraries
- Multipart 文件上传,没有额外的第三方库
- Tiny size overhead to your application, only 25kb for everything
- 在你的应用程序上利用非常小的开销,只25 kb就能够做一切
- Automatic smart request retries optimized for spotty mobile
connections - 自己主动智能请求重试,优化了质量不一的移动连接
- Automatic gzip response decoding support for super-fast requests
- 自己主动解码支持gzip反应速度超快的请求
- Binary file (images etc) downloading with
BinaryHttpResponseHandler 二进制文件(图片等)的下载,使用BinaryHttpResponseHandler
- Built-in response parsing into JSON with
JsonHttpResponseHandler 内置响应解析成JSON,使用JsonHttpResponseHandler
- Persistent cookie store, saves cookies into your app’s SharedPreferences
- 持久化cookie存储。保存cookie到你的应用程序的SharedPreferences
2.Installation & Basic Usage(安装和基本使用方法)
Download the latest .jar file from github and place it in your Android app’s libs/ folder.
从github上下载最新的最新的jar文件.并将其放置在你的Android应用程序的libs /目录.
2.1下载方式:
1.从http://loopj.com/android-async-http/的页面下载
点击DownLoad就可以下载最新的jar文件
2.从https://github.com/loopj/android-async-http的页面下载
找到DownLoad ZIP进行下载文件,解压后的文件夹例如以下
examples:里面有简单的样例
library:里面存放的是android-async-http开源项目的源代码(方法一:能够把library\src\main\java文件以下的文件复制到。你应用的src下也能够直接使用)
releases:里面存放的是各个版本号的jar文件。(方法二:仅仅需把最新的jar文件复制到你应用的libs文件夹下就可以.)
samples:里面存放的也是样例(可供參考)
备注:方法一和方法二仅仅能採用当中之中的一个。建议採用方法二
2.2用法
Import
the http package.
import com.loopj.android.http.*;
Create a new AsyncHttpClient instance and make a request:
AsyncHttpClient client = new AsyncHttpClient();
client.get("http://www.google.com", new AsyncHttpResponseHandler() {
@Override
public void onSuccess(String response) {
System.out.println(response);
}
});
Adding GET/POST Parameters with RequestParams
The RequestParams class is used to add optional GET or POST parameters to your requests.RequestParams can
be built and constructed in various ways:
Create empty RequestParams and immediately add some parameters:
RequestParams params = new RequestParams();
params.put("key", "value");
params.put("more", "data");
Create RequestParams for a single parameter:
RequestParams params = new RequestParams("single", "value");
Create RequestParams from an existing Map of
key/value strings:
HashMap<String, String> paramMap = new HashMap<String, String>();
paramMap.put("key", "value");
RequestParams params = new RequestParams(paramMap);
See the RequestParams Javadoc for more information.
Add an InputStream to the RequestParams to
upload:
InputStream myInputStream = blah;
RequestParams params = new RequestParams();
params.put("secret_passwords", myInputStream, "passwords.txt");
Add a File object to the RequestParams to
upload:
File myFile = new File("/path/to/file.png");
RequestParams params = new RequestParams();
try {
params.put("profile_picture", myFile);
} catch(FileNotFoundException e) {}
Add a byte array to the RequestParams to upload:
byte[] myByteArray = blah;
RequestParams params = new RequestParams();
params.put("soundtrack", new ByteArrayInputStream(myByteArray), "she-wolf.mp3");
See the RequestParams Javadoc for more information.
Downloading Binary Data with BinaryHttpResponseHandler
The BinaryHttpResponseHandler class can be used to fetch binary data such as images and other files. For example:
AsyncHttpClient client = new AsyncHttpClient();
String[] allowedContentTypes = new String[] { "image/png", "image/jpeg" };
client.get("http://example.com/file.png", new BinaryHttpResponseHandler(allowedContentTypes) {
@Override
public void onSuccess(byte[] fileData) {
// Do something with the file
}
});
See the BinaryHttpResponseHandler Javadoc for more information.
08_android入门_android-async-http开源项目介绍及用法的更多相关文章
- windows下nodejs express安装及入门网站,视频资料,开源项目介绍
windows下nodejs express安装及入门网站,视频资料,开源项目介绍,pm2,supervisor,npm,Pomelo,Grunt安装使用注意事项等总结 第一步:下载安装文件下载地址: ...
- 揭开webRTC媒体服务器的神秘面纱——WebRTC媒体服务器&开源项目介绍
揭开webRTC媒体服务器的神秘面纱--WebRTC媒体服务器&开源项目介绍 WebRTC生态系统是非常庞大的.当我第一次尝试理解WebRTC时,网络资源之多让人难以置信.本文针对webRTC ...
- 6个P2P流媒体开源项目介绍
P2P流媒体开源项目介绍 1. PeerCast 2002年成立,最早的开源P2P流媒体项目.PeerCast把节点按树结构组织起来, 每个频道都是一个树, 直播源是根节点,父节点只给子节点提供数据 ...
- P2P流媒体开源项目介绍
P2P流媒体开源项目介绍1. PeerCast 2002年成立,最早的开源P2P流媒体项目.PeerCast把节点按树结构组织起来, 每个频道都是一个树, 直播源是根节点,父节点只给子节点提供数据.节 ...
- J2EE开发之常用开源项目介绍
主要就我所了解的J2EE开发的框架或开源项目做个介绍,可以根据需求选用适当的开源组件进行开发.主要还是以Spring为核心,也总结了一些以前web开发常用的开源工具和开源类库 1持久层: 1)Hibe ...
- Google Go 语言从入门到应用必备开源项目
Go 语言于 2009 年 11 月正式宣布推出,成为开放源代码项目,发展至今已经具有越来越广泛的影响力,今年更是在 TIOBE 编程语言排行榜中跻身 20 强.很多开发者也逐渐将目光投向这门语言,本 ...
- 【Android开发经验】移动设备的“声波通信/验证”的实现——SinVoice开源项目介绍(一)
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 在APP市场上,常常有一些充满新意的应用让我们眼前一亮,比方微信的面对面加好友,支付宝的声波支付等等,都是通 ...
- 移动端自动化openatx开源项目介绍,pytest并发测试框架结合
开头 相信不少用过appium的同学,对于使用appium的一些体会与感受是否与我相似 1. appium启动服务和app程序非常慢 2. appium多线程并发需要启动多个服务 3. appium必 ...
- Insight API开源项目介绍
首先,在阅读本文以前假设您已经了解比特币Bitcoin基本原理. Insight API是一个开源基于比特币Bitcoin blockchain的REST风格的API框架.Insigh ...
随机推荐
- 深入了解join用法
最近面试经常被问到inner join, right join , left join 今晚决定搞清楚这些: 首先先创建两个表: CREATE TABLE Persons ( Id_P int NO ...
- PANGU---Planet and Asteroid Natural scene Generation Utility
PANGU是由英国dundee邓迪大学开发的一款行星.小行星自然环境仿真软件 https://www.star-dundee.com/products/pangu-planet-and-asteroi ...
- nutch 采集效率问题
http://hi.baidu.com/jacklin/item/a8fbccf479f6a1d042c36a7c再附一篇:http://blog.csdn.net/laigood/article/d ...
- The type java.lang.String cannot be resolved. It is indirectly referenced from required .class files
最近在做J2ME开发项目,配置环境一切OK,但是打开项目时某些文件提示: The type java.lang.String cannot be resolved. It is indirectly ...
- h.264 去块滤波
块效应及其产生原因 我们在观看视频的时候,在运动剧烈的场景常能观察到图像出现小方块,小方块在边界处呈现不连续的效果(如下图),这种现象被称为块效应(blocking artifact). 首先我们需要 ...
- 多线程操作中为什么使用while而不是if来做判断状态是否就绪
在多线程操作中,我们常常会遇到需要先判断信号量状态是否就绪,然后执行后续操作的场景.这里对状态的判断使用的是while而不是单线程下常用的if. 以下示例展示了一个简单的生产者-消费者模型:当队列满的 ...
- [cocos2d]关于CCSprite的若干问题与误区
文章 [cocos2d] 利用texture atlases生成动画 中介绍了如何生成动画并绑定在CCSprite实例上. 使用该代码遇到了几个问题,值得mark下 问题1.多实例 问题描述: 新建一 ...
- HTTP, W3SVC, WAS 和 W3WP
IIS 请求主要模块 当客户端向 IIS 发出 HTTP 请求时,会有很多事情发生. 有许多内核模式和本机模式组件,用于将请求路由到最终响应请求的 W3WP 进程. 响应一个 ...
- 【转】Ubuntu14.04搭建安装svnserver
原文网址:http://www.cnblogs.com/blfshiye/p/5168028.html 前两天,公司准备搭建一个svnserver,供大家使用.于是.就先装了一个Ubuntu系统,然后 ...
- 用Delphi7开发Web Service程序 转
转:http://rosehacker.blog.51cto.com/2528968/450160 用Delphi7开发Web Service程序,并把服务程序放在IIS Web服务器上提供给 ...