来自《Android移动应用基础教程》里面
1. 到githup上面下载AsyncHttpClient源代码,https://github.com/loopj/android-async-http
我下载的是android-async-http-master.zip,解压后就得到了AsyncHttpClient的源代码,可以把源代码拷贝到android项目的src文件夹下使用,也可以在releases文件夹下找到android-async-http-1.4.8.jar,将其拷贝到android工程的libs文件夹下进行使用。(可能会有版本差异)
2.AsyncHttpClient常用类
AsyncHttpClient:用来访问网络的类
RequestParams:用于添加参数的类
AsyncHttpResponseHandler:访问网络后回调的接口
如果要使用AsyncHttpClient,首先要创建AsyncHttpClient的实例,然后设置参数,接着通过AsyncHttpClient的实例对象访问网络。如果访问成功则会回调AsyncHttpResponseHandler接口中的OnSucess方法,失败则会回调OnFailure方法。
3.例如:
//创建AsyncHttpClient的实例
AsyncHttpClient httpClient = new AsyncHttpClient();
//拼装URL,注意要将参数编码
String path = "http://192.168.1.100:8080/web/LoginServlet?username="
+ URLEncoder.encode("zhangsan") + "&password="
+ URLEncoder.encode("1234");
//GET方式请求网络
httpClient.get(path, new AsyncHttpResponseHandler() {
//访问网络成功
@Override
public void onSuccess(int arg0, Header[] arg1, byte[] content) {
String str = new String(content);
Toast.makeText(MainActivity.this, "请求成功" + str, 0).show();
}
@Override
public void onFailure(int arg0, Header[] arg1, byte[] content, Throwable arg3) {
Toast.makeText(MainActivity.this, "请求失败" + new String(content), 0).show();
}
});
//Post方式访问网络
AsyncHttpClient httpClient2 = new AsyncHttpClient();
//访问地址
String urlstr = "http://192.168.1.100:8080/web/loginServlet";
//用于添加参数
RequestParams params = new RequestParams();
//添加参数
params.put("name", "张三");
params.put("password", "12345");
//访问网络
httpClient2.post(urlstr, new AsyncHttpResponseHandler() {
//访问成功
@Override
public void onSuccess(int arg0, Header[] arg1, byte[] responseBody) {
Toast.makeText(MainActivity.this, "请求成功" + new String(responseBody), 0).show();
}
@Override
public void onFailure(int arg0, Header[] arg1, byte[] responseBody, Throwable arg3) {
Toast.makeText(MainActivity.this, "请求失败" + new String(responseBody), 0).show();
}
});