Android网络请求库——android-async-http

今天要介绍的是一个在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文件夹下并添加到工程路径即可。通过下面的代码来创建一个异步请求:
Java代码   收藏代码
  1. AsyncHttpClient client = new AsyncHttpClient();  
  2.                 client.get("http://www.baidu.com"new AsyncHttpResponseHandler() {  
  3.                       
  4.                     @Override  
  5.                     public void onSuccess(String response) {  
  6.                         System.out.println(response);  
  7.                         textView.setText(response);  
  8.                     }  
  9.                       
  10.                     @Override  
  11.                     public void onStart() {  
  12.                         super.onStart();  
  13.                         System.out.println("onStart");  
  14.                     }  
  15.                       
  16.                     @Override  
  17.                     public void onFinish() {  
  18.                         super.onFinish();  
  19.                         System.out.println("onFinish");  
  20.                     }  
  21.                       
  22.                 }  


通过Get请求指定的URL并通过回调函数处理请求结果,同时,请求方式还支持POST和PUT,请求的同时还支持参数传递,下面看看如何通过JSON字符串作为参数访问服务器:
Java代码   收藏代码
  1. try {  
  2.                     JSONObject jsonObject = new JSONObject();  
  3.                     jsonObject.put("username""ryantang");  
  4.                     StringEntity stringEntity = new StringEntity(jsonObject.toString());  
  5.                     client.post(MainActivity.this"http://api.com/login", stringEntity, "application/json"new JsonHttpResponseHandler(){  
  6.   
  7.                         @Override  
  8.                         public void onSuccess(JSONObject jsonObject) {  
  9.                             super.onSuccess(jsonObject);  
  10.                               
  11.                         }  
  12.                           
  13.                     });  
  14.                 } catch (JSONException e) {  
  15.                     e.printStackTrace();  
  16.                 } catch (UnsupportedEncodingException e) {  
  17.                     e.printStackTrace();  
  18.                 }  

官方推荐的使用方法,使用一个静态的请求对象,我们来看看官方例举的一个访问Twitter的API的例子:

使用方法:


由于涉及网络请求,最后别忘了添加权限:
Html代码   收藏代码
  1. <uses-permission android:name="android.permission.INTERNET" />  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值