在iOS开辟中有赫赫有名的ASIHttpRequest库,用来处置网络请求作操,天今要分析的是一个在Android上一样大强的网络请求库android-async-http,现在非常火的应用Instagram和Pinterest的Android版就是用的这个网络请求库。这个网络请求库是基于Apache HttpClient库之上的一个步异网络请求处置库,网络处置均基于Android的非UI线程,通过回调方法处置请求结果。
其主要征特如下:
- 处置步异Http请求,并通过匿名内部类处置回调结果
- Http请求均位于非UI线程,不会塞阻UI作操
- 通过线程池处置并发请求
- 处置文件上传、载下
- 响应结果动自打包JSON格式
- 动自处置连接断开时请求重连
应用android-async-http也非常简略,到官网http://loopj.com/android-async-http/载下赖依jar包,导入程工中libs文件夹下并添加到程工径路便可。通过面下的代码来建创一个步异请求:
AsyncHttpClient client = new AsyncHttpClient(); client.get("http://www.baidu.com",new AsyncHttpResponseHandler() { @Override public void onSuccess(String response) { System.out.println(response); textView.setText(response); } @Override public void onStart() { super.onStart(); System.out.println("onStart"); } @Override public void onFinish() { super.onFinish(); System.out.println("onFinish"); } }通过Get请求指定的URL并通过回调函数处置请求结果,同时,请求方法还持支POST和PUT,请求的同时还持支数参传递,面下看看如何通过JSON字符串作为数参拜访服务器:
try { JSONObject jsonObject = new JSONObject(); jsonObject.put("username","ryantang"); StringEntity stringEntity = new StringEntity(jsonObject.toString()); client.post(MainActivity.this,"http://api.com/login", stringEntity, "application/json",new JsonHttpResponseHandler(){ @Override public void onSuccess(JSONObject jsonObject) { super.onSuccess(jsonObject); } }); }catch (JSONException e) { e.printStackTrace(); }catch (UnsupportedEncodingException e) { e.printStackTrace(); }官方推荐的应用方法,应用一个静态的请求象对,我们来看看官方例举的一个拜访Twitter的API的例子:
import com.loopj.android.http.*; public class TwitterRestClient { private static final String BASE_URL = "http://api.twitter.com/1/"; private static AsyncHttpClient client = new 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); } private static String getAbsoluteUrl(String relativeUrl) { return BASE_URL + relativeUrl; } }
import org.json.*; import com.loopj.android.http.*; class TwitterRestClientUsage { public void getPublicTimeline() throws JSONException { TwitterRestClient.get("statuses/public_timeline.json", null, new JsonHttpResponseHandler() { @Override public void onSuccess(JSONArray timeline) { // Pull out the first event on the public timeline JSONObject firstEvent = timeline.get(0); String tweetText = firstEvent.getString("text"); // Do something with the response System.out.println(tweetText); } }); } }
相关推荐
Android-Async-Http库的核心特性包括: 1. **异步网络请求**:通过使用回调机制,网络请求在后台线程执行,完成后在主线程更新UI,避免了UI冻结。 2. **自动处理JSON和XML数据**:库内置了对JSON和XML的解析支持,...
"Android-Async-Http"是一个流行的开源框架,专为Android平台设计,用于简化网络请求处理。这个框架的主要目标是让Android开发者能够更高效、更轻松地进行异步HTTP通信,从而获取网络数据或向服务器发送数据。在...
"android-async-http-1.4.3"就是一个这样的开源框架,专为Android设计,旨在简化异步HTTP请求的处理。 **框架概述** "android-async-http-1.4.3"是Leonardo Uribe创建的一个轻量级、高性能的Android HTTP客户端库...
`android-async-http`是一个流行的开源库,它简化了Android应用程序中的HTTP请求处理。这个库由Loopj开发,提供了简单易用的API,支持GET、POST等HTTP方法,同时允许在请求过程中进行回调,处理进度更新或错误。 `...
Android-Async-Http库是由Leonardo Uribe创建的,它的主要特点是使用异步处理模型,避免了主线程被阻塞,从而提高了用户体验。在Android应用中,由于UI线程不能长时间执行耗时操作,如网络请求,因此异步处理至关...
Android开源框架Android-async-http是专为Android开发设计的一个异步HTTP客户端,它简化了网络请求的处理过程,提供了方便快捷的方法来获取网络数据或向服务器发送数据。该框架由***维护,具有易用性和高效处理并发...
为了提升用户体验,异步处理网络请求变得至关重要,而`Android-Async-Http`框架正是为此目的设计的一个强大工具。它由Leonardo Uribe创建,并在GitHub上开源,为开发者提供了简洁、高效的异步HTTP请求解决方案。 ##...
`android-async-http`是一个非常流行的开源框架,用于简化Android应用程序中的HTTP网络请求。本文将深入探讨这个框架的核心特性、使用方法以及其在处理JSON数据方面的优势。 一、框架简介 `android-async-http`,...
Android-Async-Http是一个流行的开源库,用于在Android平台上实现异步HTTP请求。这个框架使得开发者可以方便地处理网络通信,避免了主线程被阻塞,提升了应用的用户体验。下面将详细阐述该框架的核心功能、使用方法...
Android-Async-Http是一款广泛使用的开源库,专为Android平台设计,实现了轻量级、高效的异步HTTP请求处理。本文将深入探讨该库的核心功能、使用方法及其在实际项目中的应用。 一、Android-Async-Http简介 Android...
在这里,我们重点关注的是一个名为`android-async-http`的开源项目,它是一个为Android平台设计的高效、易用的异步HTTP库。 一、项目概述 `android-async-http`是由Leonardo电子书(Leonardo da Vinci)创建并维护...
今天介绍一个请求服务器的一个开源库—android-async-http库。 1. 概念: 这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通过回调方法(匿名内部类)...
这两个jar包,"android-async-http"和"universal-image-loader",都是为了解决这些问题而设计的库。 首先,我们来了解一下"android-async-http" jar包。这是一个开源的Android库,由Loopj提供,主要用于处理异步...
在本资料中,我们主要关注的是开源中国Android客户端的一个学习数据篇,重点是解析和理解`android-async-http`框架以及Android内置的`AsyncTask`。这两个组件在Android应用开发中都扮演着至关重要的角色,特别是在...
集成了android-async-http, volley, okhttp3等网络请求框架.可直接切换底层库. 1 简介 架构分层 总共分为三层: 网络请求调用层. app统一调用该层接口和这层提供的回调,该层可以切换不同的网络请求库. 网络请求库...
代码是从开源框架android-async-http来的,老版本的代码。(原来代码有个bug,现在已经修改)。源代码没有打印出请求url,有时候想看看请求的url地址,不方便,自己修改了下,在onstart和onfish方法里面可以打印相应...