`
阿尔萨斯
  • 浏览: 4108737 次
社区版块
存档分类
最新评论

android-async-http开源项目介绍及使用方法

 
阅读更多

android-async-http开源项目可以是我们轻松的获取网络数据或者向服务器发送数据,使用起来非常简单,关于android-async-http开源项目的介绍内容来自于官方:http://loopj.com/android-async-http/.下面我对此主页上内容进行大体上的翻译,希望能够对你理解android-async-http开源项目有所帮助

1.1Overview(概况)

An asynchronous callback-based Http client for Android built on top of Apache’sHttpClientlibraries. 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.

译文:

异步基于回调的Http客户端为Android构建,是基于Apache HttpClient库的。所有的请求都是位于应用程序主线程 UI 之外,但任何回调逻辑将相同的线程上执行回调,使用Android的处理程序创建消息传递。

1.2Features(特征)

  • MakeasynchronousHTTP requests, handle responses inanonymous callbacks
  • 进行异步HTTP请求,处理响应在匿名回调中完成
  • HTTP requests happenoutside the UI thread
  • HTTP请求发生在UI线程之外
  • Requests use athreadpoolto cap concurrent resource usage
  • 请求使用threadpool,限制并发资源使用情况
  • GET/POSTparams builder(RequestParams)
  • GET / POST参数构建使用(RequestParams)
  • Multipart file uploadswith no additional third party libraries
  • Multipart文件上传,没有额外的第三方库
  • Tiny size overhead to your application, only25kbfor everything
  • 在你的应用程序上利用很小的开销,仅仅25 kb就可以做一切
  • Automatic smartrequest retriesoptimized for spotty mobile connections
  • 自动智能请求重试,优化了质量不一的移动连接
  • Automaticgzipresponse decoding support for super-fast requests
  • 自动解码支持gzip反应速度超快的请求
  • Binary file (images etc) downloading withBinaryHttpResponseHandler
  • 二进制文件(图片等)的下载,使用BinaryHttpResponseHandler
  • Built-in response parsing intoJSONwithJsonHttpResponseHandler
  • 内置响应解析成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’slibs/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 newAsyncHttpClientinstance 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 withRequestParams

TheRequestParamsclass is used to add optional GET or POST parameters to your requests.RequestParamscan be built and constructed in various ways:

Create emptyRequestParamsand immediately add some parameters:

RequestParams params = new RequestParams();
params.put("key", "value");
params.put("more", "data");

CreateRequestParamsfor a single parameter:

RequestParams params = new RequestParams("single", "value");

CreateRequestParamsfrom an existingMapof key/value strings:

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

See theRequestParams Javadocfor more information.

Add anInputStreamto theRequestParamsto upload:

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

Add aFileobject to theRequestParamsto 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 theRequestParamsto upload:

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

See theRequestParams Javadocfor more information.

Downloading Binary Data withBinaryHttpResponseHandler

TheBinaryHttpResponseHandlerclass 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 theBinaryHttpResponseHandler Javadocfor more information.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics