`

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网络请求库android-async-http介绍

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

    开源框架android-async-http-master

    android-async-http-master开源框架能够帮助我们更有效率的开发,对于解析json数据,http的get、post请求的处理等等

    Android代码-Android-Http-Example

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

    开源框架android-async-http源码

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

    AndroidAsyncTaskHttp网络请求Demo

    利用android-async-http开源框架进行网络请求

    Android-async-http 源码及jar包

    Async-http是一款国外的开源框架,作者是loopj。是基于Apache HttpClient库的。可以方便快速高效的进行网络数据请求 和发送,文件下载和上传。 特点: 清晰的网络请求回调 请求使用ThreadPool,限制并发资源使用...

    RecyclerView + AndroidAsyncHttp + Glide + ButterKnife

    学习使用RecyclerView和开源控件circleimageview,学习使用网络请求框架android-async-http,学习使用Gson、图片加载框架Glide和注解框架ButterKnife。

    Android异步http请求工具包及源码

    开源的异步http连接工具类源码. 示例代码: public class TwitterRestClient { private static final String BASE_URL = "http://api.twitter.com/1/"; private static AsyncHttpClient client = new ...

    Android项目源码24小时今日资讯新闻客户端

    最新鲜的时事新闻,最...2.android-async-http异步线程请求库的使用 3.android超快listview的FastScrollView框架的使用 4.目前使用的一些下拉刷新、上拉加载 5.还有一些包括自己写的json解析..抽象一些公用类之类的

    六款值得推荐的android(安卓)开源框架简介

     (2) 网络请求的排序(scheduling) (3) 网络请求的优先级处理 (4) 缓存 ...2、android-async-http 项目地址:https://github.com/loopj/android-async-http文档介绍:http://loopj.com/android-async-http/  

    android应用访问服务器端

    android访问服务器的HttpURLConnectoiin,HttpClient,开源框架android-async-http-master三种方式请求服务端

    集成目前Android主流优秀第三方组件

    网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK+短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入库RoboGuice WebService调用库...

    安卓java读取网页源码-Android-Resourse:安卓资源

    https://github.com/loopj/android-async-http AndroidAsync 异步Socket,HTTP(客户端+服务器),WebSocket,和socket.io库。基于NIO而不是线程 OkHttp 一个Http与Http/2的客户端 Retrofit 类型安全的Http客户端,...

    Android代码-基于RxJava2Retrofit2实现简单易用的网络请求框架

    网上好的开源网络库像Volley、async-http、okhttp、retrofit等都非常强大,但是实际应用中我们不会直接去使用,一般都会根据自己的业务再封装一层,这样更方便快捷,又能统一处理业务共性的东西例如:统一的数据结构...

    Android例子源码集成安卓主流优秀第三方组件框架.zip

    网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK 短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入库RoboGuice WebService...

    Android 常用六大框架

    项目地址:https://github.com/loopj/android-async-http 文档介绍:http://loopj.com/android-async-http/ (1) 在匿名回调中处理请求结果 (2) 在UI线程外进行http请求 (3) 文件断点上传 (4) 智能重试 (5) ...

    Android集成主流优秀第三方组件框架

    网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK+短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入库RoboGuice WebService调用库...

    Android例子源码集成安卓主流优秀第三方组件框架

    这是一个集成目前Android主流优秀第三方组件、优秀好用的自定义控件、实用工具类封装、以及一些APP共通模块(比如:版本更新、意见反馈、引导界面等等)的开发...,帮助程序员快速开发自己的APP已集成第三方开源组件...

    本库是一款基于RxJava2+Retrofit2实现简单易用的网络请求框架,结合android平台特性的网络封装库

    网上好的开源网络库像Volley、async-http、okhttp、retrofit等都非常强大,但是实际应用中我们不会直接去使用,一般都会根据自己的业务再封装一层,这样更方便快捷,又能统一处理业务共性的东西例如:统一的数据结构...

Global site tag (gtag.js) - Google Analytics