`

android-async-http开源请求库

 
阅读更多

在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的jar包

    Android-Async-Http库的核心特性包括: 1. **异步网络请求**:通过使用回调机制,网络请求在后台线程执行,完成后在主线程更新UI,避免了UI冻结。 2. **自动处理JSON和XML数据**:库内置了对JSON和XML的解析支持,...

    android-async-http-master

    "Android-Async-Http"是一个流行的开源框架,专为Android平台设计,用于简化网络请求处理。这个框架的主要目标是让Android开发者能够更高效、更轻松地进行异步HTTP通信,从而获取网络数据或向服务器发送数据。在...

    android-async-http-1.4.3-master.zip

    "android-async-http-1.4.3"就是一个这样的开源框架,专为Android设计,旨在简化异步HTTP请求的处理。 **框架概述** "android-async-http-1.4.3"是Leonardo Uribe创建的一个轻量级、高性能的Android HTTP客户端库...

    android-async-http progress-wheel测试程序

    `android-async-http`是一个流行的开源库,它简化了Android应用程序中的HTTP请求处理。这个库由Loopj开发,提供了简单易用的API,支持GET、POST等HTTP方法,同时允许在请求过程中进行回调,处理进度更新或错误。 `...

    经典开源项目android-async-http-master

    Android-Async-Http库是由Leonardo Uribe创建的,它的主要特点是使用异步处理模型,避免了主线程被阻塞,从而提高了用户体验。在Android应用中,由于UI线程不能长时间执行耗时操作,如网络请求,因此异步处理至关...

    Android开源框架Android-async-http的研究与应用.pdf

    Android开源框架Android-async-http是专为Android开发设计的一个异步HTTP客户端,它简化了网络请求的处理过程,提供了方便快捷的方法来获取网络数据或向服务器发送数据。该框架由***维护,具有易用性和高效处理并发...

    android-async-http 安卓异步http框架

    为了提升用户体验,异步处理网络请求变得至关重要,而`Android-Async-Http`框架正是为此目的设计的一个强大工具。它由Leonardo Uribe创建,并在GitHub上开源,为开发者提供了简洁、高效的异步HTTP请求解决方案。 ##...

    开源框架android-async-http-master

    `android-async-http`是一个非常流行的开源框架,用于简化Android应用程序中的HTTP网络请求。本文将深入探讨这个框架的核心特性、使用方法以及其在处理JSON数据方面的优势。 一、框架简介 `android-async-http`,...

    android-async-http访问网络框架

    Android-Async-Http是一个流行的开源库,用于在Android平台上实现异步HTTP请求。这个框架使得开发者可以方便地处理网络通信,避免了主线程被阻塞,提升了应用的用户体验。下面将详细阐述该框架的核心功能、使用方法...

    android-async-http-master.zip

    Android-Async-Http是一款广泛使用的开源库,专为Android平台设计,实现了轻量级、高效的异步HTTP请求处理。本文将深入探讨该库的核心功能、使用方法及其在实际项目中的应用。 一、Android-Async-Http简介 Android...

    android-async-http:.zip

    在这里,我们重点关注的是一个名为`android-async-http`的开源项目,它是一个为Android平台设计的高效、易用的异步HTTP库。 一、项目概述 `android-async-http`是由Leonardo电子书(Leonardo da Vinci)创建并维护...

    Android网络请求库android-async-http介绍

    今天介绍一个请求服务器的一个开源库—android-async-http库。 1. 概念: 这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通过回调方法(匿名内部类)...

    android-async-httpjar包 universal-image-loader

    这两个jar包,"android-async-http"和"universal-image-loader",都是为了解决这些问题而设计的库。 首先,我们来了解一下"android-async-http" jar包。这是一个开源的Android库,由Loopj提供,主要用于处理异步...

    开源中国源码学习数据篇(一)之android-async-http框架和AsyncTask

    在本资料中,我们主要关注的是开源中国Android客户端的一个学习数据篇,重点是解析和理解`android-async-http`框架以及Android内置的`AsyncTask`。这两个组件在Android应用开发中都扮演着至关重要的角色,特别是在...

    Android代码-Android-Http-Example

    集成了android-async-http, volley, okhttp3等网络请求框架.可直接切换底层库. 1 简介 架构分层 总共分为三层: 网络请求调用层. app统一调用该层接口和这层提供的回调,该层可以切换不同的网络请求库. 网络请求库...

    开源框架android-async-http源码

    代码是从开源框架android-async-http来的,老版本的代码。(原来代码有个bug,现在已经修改)。源代码没有打印出请求url,有时候想看看请求的url地址,不方便,自己修改了下,在onstart和onfish方法里面可以打印相应...

Global site tag (gtag.js) - Google Analytics