android开源框架android-async-http使用
来源:互联网 发布:python 用户登录认证 编辑:程序博客网 时间:2024/06/04 21:50
开发android app 需要进行获取网络数据或者向服务器发送数据操作,这些数据传送可以通过android-async-http开源框架来帮我实现。android-async-http使用起来也很简单。
android-async-http 项目主页:https://github.com/loopj/android-async-http 可供下载源代码和jar包。
在Android项目中添加jar包值lib或者在build.gradle中添加如下依赖
dependencies { XXXXXXX //android-async-http compile 'com.loopj.android:android-async-http:1.4.8'}
此时就可以使用android-async-http获取网络上的数据了。
这里通过AsyncHttpClient实现异步的数据获取。它的feature包括:public class HttpUtil { private static AsyncHttpClient client = new AsyncHttpClient(); static { client.setTimeout(15000); // 超时时间,默认为10s DEFAULT_SOCKET_TIMEOUT = 10 * 1000; } public static void get(String url, AsyncHttpResponseHandler res) { client.get(url, res); } public static void get(String url, RequestParams params, AsyncHttpResponseHandler res) { client.get(url, params, res); } public static void get(String url, JsonHttpResponseHandler res) { client.get(url, res); } public static void get(String url, RequestParams params, JsonHttpResponseHandler res) { client.get(url, params, res); } public static void get(String url, BinaryHttpResponseHandler bHandler) { client.get(url, bHandler); } public static void post(String url, AsyncHttpResponseHandler res) { client.post(url, res); } public static void post(String url, RequestParams params, AsyncHttpResponseHandler res) { client.post(url, params, res); } public static void post(String url, JsonHttpResponseHandler res) { client.post(url, res); } public static void post(String url, RequestParams params, JsonHttpResponseHandler res) { client.post(url, params, res); } public static AsyncHttpClient getClient() { return client; }}
1. 发送异步http请求,在匿名callback对象中处理response;
2. http请求发生在UI线程之外;
3. 内部采用线程池来处理并发请求;
4. GET/POST 参数构造,通过RequestParams类。
5. 内置多部分文件上传,不需要第三方库支持;
6. 流式Json上传,不需要额外的库;
7. 能处理环行和相对重定向;
8. 和你的app大小相比来说,库的size很小,所有的一切只有90kb;
9. 自动智能的请求重试机制在各种各样的移动连接环境中;
10. 自动的gzip响应解码;
11. 内置多种形式的响应解析,有原生的字节流,string,json对象,甚至可以将response写到文件中;
12. 永久的cookie保存,内部实现用的是Android的SharedPreferences;
13. 通过BaseJsonHttpResponseHandler和各种json库集成;
14. 支持SAX解析器;
15. 支持各种语言和content编码,不仅仅是UTF-8。
之后我们就可以使用HttpUtil来完成我们的数据获取功能了,根据需要override AsyncHttpResponseHandler
RequestParams params = new RequestParams();params.put(“key", "value");//通过键值对的方式添加需要的参数String url = "http://hostname:8088/your_url";HttpUtil.get(url , params, new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONArray object) {//这里可根据返回数据决定是array还是objec super.onSuccess(statusCode, headers, object); Log.v("SearchActivity", object.toString()); }
@Override public void onFailure(int statusCode, Header[] headers, Throwable throwable,
JSONArray errorResponse) { super.onFailure(statusCode, headers, throwable, errorResponse); }
@Override
public void onFailure(int statusCode, Header[] headers, Throwable throwable,
JSONObject errorResponse) {
super.onFailure(statusCode, headers, throwable, errorResponse);
}
@Override
public void onFailure(int statusCode, Header[] headers, String responseString,
Throwable throwable) {
super.onFailure(statusCode, headers, responseString, throwable);
}
});
因为我们的操作用到了网络进行数据传输。所以我们的app需要网络权限,在AndroidManifest.xml中添加
<uses-permission android:name="android.permission.INTERNET" />
是不是很简单,现在就可以专心处理我们所需要的数据了。
1 0
- 开源框架android-async-http使用
- 开源框架android-async-http使用
- 开源框架android-async-http使用
- 开源框架android-async-http使用
- android开源框架android-async-http使用
- Android开源框架AsyncHttpClient (android-async-http)使用
- android开源框架android-async-http使用
- android开源框架android-async-http使用
- Android开源框架AsyncHttpClient (android-async-http)使用
- android开源框架android-async-http使用
- android开源框架android-async-http使用
- Android开源框架--AsyncHttpClient (android-async-http)使用
- android开源框架android-async-http使用
- android开源框架android-async-http使用
- android开源框架android-async-http使用
- android开源框架android-async-http使用
- android开源框架android-async-http使用案例介绍
- android开源框架android-async-http使用
- Android广播机制
- 安卓官方原生系统与AOSP区别
- Web思维导图
- ASP.Net MVC的ViewBag一个坑,不要跳进去
- 在同一台应用服务器内共享cookie和跨域共享cookie的方法
- android开源框架android-async-http使用
- 只能填写数字的input
- ARGB 值详解
- 软件业的发展方向:云、Web以及App
- Excel学习笔记
- eclipse的快捷键ctrl+alt+down冲突,禁用了显卡快捷键还是不行的解决方法!
- ArcGIS教程:克里金法的工作原理(二)
- Linux下tomcat的catalina.out文件过大
- ng-src与ng-href