android-async-http框架的学习和使用

时间:2021-08-24 18:33:54
开发APP,前后台服务器和客户端联调是必须的,所以通常我们需要实现http网络请求。
然而现在这种框架网上也有不少,今天我就来说我现在用的这种框架——android-async-http框架。


首先,把这个框架的jar包下载下来放入工程的libs目录下面,这里我用的是android-async-http的1.4.6版本,右键选择“Add AsLibrary...”把这个jar包添加为库文件。
直到jar包左侧出现一个箭头,就说明添加成功,我们可以在代码中使用了。

说到这里,我顺便讲一下工程导入成为库文件的方法,因为之前也确实踩了一些坑。工程导入和jar包导入不同的地方是我们要在build.gradle和setting.gradle里面设置一下。就拿我经常在工程中的用到的下拉刷新控件来说,我会喜欢把文件直接拖到和当前工程的同一级目录下,注意是同一级哦。另外为什么是直接拖到文件夹里面呢?因为如果是按照"File ->new -> Import Module...",有的时候卡起来还是要蛮久的。 其实我们只需要在把相应的文件放到当前工程的同级目录下,然后在build.gradle里面的dependencies{}的花括号里面加上 compile project(':工程名称')
setting.gradle文件里面加上 include ':工程名称'

如果还是没有变成库文件的话,build一下就好。
把jar包导入后,我们接下来就可以进行这个框架的简单使用了,主要有一下几个步骤:

一、新建AsynHttpClient对象:
AsyncHttpClient client = new AsyncHttpClient();

二、根据我们的数据获取类型,一般也就是get/post,调用这个对象的get或post方法:

client.get(url, params, new TextHttpResponseHandler() {

@Override
public void onFailure(int i, Header[] headers, String s, Throwable throwable) {
}

@Override
public void onSuccess(int i, Header[] headers, String s) {
}
});

client.post(url, params, new TextHttpResponseHandler() {

@Override
public void onSuccess(int i, Header[] headers, String response) {
}

@Override
public void onFailure(int i, Header[] headers, String response, Throwable throwable) {
}
});


url-------------需要要联调的网络链接
params--------------------传递给后台服务器的数据 TextHttpResponseHandler-------------------是因为我这里希望他拿到的是String类型的数据(如果单纯的是AsyncHttpResponseHandler的话,那么onSuccess()和onFailure()方法中的String s就会被byte[] bytes替代)

三、根据url链接和要传递的数据去获取服务器的数据了,在onSuccess()里面处理请求成功的结果,在onFailure()方法中处理请求失败的结果。