云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 课题 - 浅论Android网络请求库 - android-async-http

课题 - 浅论Android网络请求库 - android-async-http

  • 62 次阅读
  • 3 次下载
  • 2026/4/26 21:40:14

浅论Android网络请求库——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文件夹下并添加到工程路径即可。通过下面的代码来创建一个异步请求: 首先,我们分析一下相应核心的操作类。

AsyncHttpResponseHandler ——这是一个请求返回处理 成功 失败 开始 完成 等自定义的消息的类

BinaryHttpResponseHandler extends AsyncHttpResponseHandler ——继承AsyncHttpResponseHandler的子类,这是一个字节流返回处理的类, 该类用于处理图片等类。

JsonHttpResponseHandler extends AsyncHttpResponseHandler ——继承AsyncHttpResponseHandler的子类,这是一个json请求返回处理服务器与客户端用json交流时使用的类.

AsyncHttpRequest implements Runnable ——基于线程的子类,用于 异步请求类, 通过AsyncHttpResponseHandler回调。

PersistentCookieStore implements CookieStore ——这是一个基于CookieStore的子类, 使用HttpClient处理数据,并且使用cookie持久性存储接口。

RequestParams ——封装了参数处理 例如:

* RequestParams params = new RequestParams(); * params.put(\* params.put(\* params.put(\

* params.put(\new File(\// Upload a File

* params.put(\// Upload an InputStream

* params.put(\new ByteArrayInputStream(someBytes)); // Upload some bytes *

* AsyncHttpClient client = new AsyncHttpClient();

接下来核心类。

RetryHandler implements HttpRequestRetryHandler——这是一个多个线程同步处理的类 SerializableCookie implements Serializable——这是操作cookie 放入/取出数据的类 SimpleMultipartEntity implements HttpEntity——用于处理多个请求实体封装

SyncHttpClient extends AsyncHttpClient——同步客户端请求的类 AsyncHttpClient——异步客户端请求的类 介绍了这些核心类之后,我们主要看看他的用法: 这是普通get方式来返回相应字符串的代码:

AsyncHttpClient client = new AsyncHttpClient();

client.get(\new AsyncHttpResponseHandler() {

@Override

public void onSuccess(String response) { System.out.println(response); textView.setText(response); }

@Override

public void onStart() { super.onStart();

System.out.println(\ }

@Override

public void onFinish() { super.onFinish();

System.out.println(\ } }

同时,请求方式还支持POST和PUT,请求的同时还支持参数传递,下面看看如何通过JSON字符串作为参数访问服务器:

try {

JSONObject jsonObject = new JSONObject(); jsonObject.put(\

StringEntity stringEntity = new StringEntity(jsonObject.toString()); client.post(MainActivity.this, \\new JsonHttpResponseHandler(){

@Override

public void onSuccess(JSONObject jsonObject) { super.onSuccess(jsonObject);

} });

} catch (JSONException e) { e.printStackTrace();

} catch (UnsupportedEncodingException e) { e.printStackTrace(); }

除此之外,还能够支持相应文件图片上传的话。相应的源代码如下:

String path=\ File myFile = new File(\ RequestParams params = new RequestParams(); try {

params.put(\

AsyncHttpClient client = new AsyncHttpClient();

client.post(path, params, new AsyncHttpResponseHandler(){

@Override

public void onFailure(Throwable error, String content) { // TODO Auto-generated method stub super.onFailure(error, content);

Toast.makeText(MainActivity.this, \上传失败!\Toast.LENGTH_LONG).show(); }

@Override

public void onSuccess(int statusCode, String content) { // TODO Auto-generated method stub super.onSuccess(statusCode, content); System.out

.println(\

Toast.makeText(MainActivity.this, \上传成功!\Toast.LENGTH_LONG).show(); } });

} catch(FileNotFoundException e) { }

注意了,这种方法上传的参数一定要 设置params.put(\否则就会失败。 当然,android-async-http还有很多用法,这里不做过多赘述了。希望android-async-http能够大家以后android的请求模块得到帮助。

搜索更多关于: 课题 - 浅论Android网络请求库 - android- 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

浅论Android网络请求库——android-async-http 在iOS开发中有大名鼎鼎的ASIHttpRequest库,用来处理网络请求操作,今天要介绍的是一个在Android上同样强大的网络请求库android-async-http,目前非常火的应用Instagram和Pinterest的Android版就是用的这个网络请求库。这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通过回调方法处理请求结果。 其主要特征如下:处理异步Http请求,并通过匿名内部类处理回调结果,Http异步请求均位于非UI线程,不会阻塞UI操作,通过线程池处理并发请求处理文件上传、下载,响应结果自动打包JSON格式. 自动处理连接断开时请求重连.使用android-async-http也非常简

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com