在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. 概念: 这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通过回调方法(匿名内部类)...
android-async-http-master开源框架能够帮助我们更有效率的开发,对于解析json数据,http的get、post请求的处理等等
集成了android-async-http, volley, okhttp3等网络请求框架.可直接切换底层库. 1 简介 架构分层 总共分为三层: 网络请求调用层. app统一调用该层接口和这层提供的回调,该层可以切换不同的网络请求库. 网络请求库...
代码是从开源框架android-async-http来的,老版本的代码。(原来代码有个bug,现在已经修改)。源代码没有打印出请求url,有时候想看看请求的url地址,不方便,自己修改了下,在onstart和onfish方法里面可以打印相应...
利用android-async-http开源框架进行网络请求
Async-http是一款国外的开源框架,作者是loopj。是基于Apache HttpClient库的。可以方便快速高效的进行网络数据请求 和发送,文件下载和上传。 特点: 清晰的网络请求回调 请求使用ThreadPool,限制并发资源使用...
学习使用RecyclerView和开源控件circleimageview,学习使用网络请求框架android-async-http,学习使用Gson、图片加载框架Glide和注解框架ButterKnife。
开源的异步http连接工具类源码. 示例代码: public class TwitterRestClient { private static final String BASE_URL = "http://api.twitter.com/1/"; private static AsyncHttpClient client = new ...
最新鲜的时事新闻,最...2.android-async-http异步线程请求库的使用 3.android超快listview的FastScrollView框架的使用 4.目前使用的一些下拉刷新、上拉加载 5.还有一些包括自己写的json解析..抽象一些公用类之类的
(2) 网络请求的排序(scheduling) (3) 网络请求的优先级处理 (4) 缓存 ...2、android-async-http 项目地址:https://github.com/loopj/android-async-http文档介绍:http://loopj.com/android-async-http/
android访问服务器的HttpURLConnectoiin,HttpClient,开源框架android-async-http-master三种方式请求服务端
网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK+短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入库RoboGuice WebService调用库...
https://github.com/loopj/android-async-http AndroidAsync 异步Socket,HTTP(客户端+服务器),WebSocket,和socket.io库。基于NIO而不是线程 OkHttp 一个Http与Http/2的客户端 Retrofit 类型安全的Http客户端,...
网上好的开源网络库像Volley、async-http、okhttp、retrofit等都非常强大,但是实际应用中我们不会直接去使用,一般都会根据自己的业务再封装一层,这样更方便快捷,又能统一处理业务共性的东西例如:统一的数据结构...
网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK 短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入库RoboGuice WebService...
项目地址:https://github.com/loopj/android-async-http 文档介绍:http://loopj.com/android-async-http/ (1) 在匿名回调中处理请求结果 (2) 在UI线程外进行http请求 (3) 文件断点上传 (4) 智能重试 (5) ...
网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK+短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入库RoboGuice WebService调用库...
这是一个集成目前Android主流优秀第三方组件、优秀好用的自定义控件、实用工具类封装、以及一些APP共通模块(比如:版本更新、意见反馈、引导界面等等)的开发...,帮助程序员快速开发自己的APP已集成第三方开源组件...
网上好的开源网络库像Volley、async-http、okhttp、retrofit等都非常强大,但是实际应用中我们不会直接去使用,一般都会根据自己的业务再封装一层,这样更方便快捷,又能统一处理业务共性的东西例如:统一的数据结构...