找到下载文件的源码,com包黏贴到项目中的src目录下
引入jar包到libs下
1.创建异步请求端对象
2.发送get请求,(get请求参数含义:请求的url地址;异步请求的handler)
3.在成功请求里(status:状态返回码,headers:头部请求信息,responsebody返回结果)设置控件内容
2.发送post请求,(get请求参数含义:请求的url地址;异步请求的handler)
3.封装请求参数
4.在成功请求里(status:响应状态码,headers:响应头信息,responsebody相应内容的字节码)设置控件内容
补充:
查看帮助文档我们知道,在post方法中传递参数时候可以创建requestparams的对象,put进你所想要赋的值。如下图:
http://blog.csdn.net/zhaoyazhi2129/article/details/26509763
<uses-permission android:name="android.permission.internet"/>
package com.example.android_httpasync;
import org.apache.http.header;
import com.loopj.android.http.asynchttpclient;
import com.loopj.android.http.asynchttpresponsehandler;
import com.loopj.android.http.requestparams;
import android.app.activity;
import android.os.bundle;
import android.text.textutils;
import android.view.view;
import android.widget.edittext;
import android.widget.textview;
import android.widget.toast;
/**
* 通过开源框架asynchttpclient的get/post请求处理
* @author zhaoyazhi
*
*/
public class mainactivity extends activity {
private edittext et_username;
private edittext et_password;
private textview tv_result;
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_login);
findview();
}
/**
* 查找控件
*/
public void findview() {
et_password = (edittext) findviewbyid(r.id.editpass);
et_username = (edittext) findviewbyid(r.id.editusername);
tv_result = (textview) findviewbyid(r.id.tv_result);
* 登陆按钮操作
*
* @param v
public void login(view v) {
// 获取点击控件的id
int id = v.getid();
// 根据id进行判断
switch (id) {
case r.id.btn_login:// 进行登录操作
// 获取用户名密码
final string username = et_username.gettext().tostring();
final string userpass = et_password.gettext().tostring();
// 判断是否为空
if (textutils.isempty(username) || textutils.isempty(userpass)) {
toast.maketext(getapplicationcontext(), "用户名或者密码不能为空", 0)
.show();
} else {
toast.maketext(getapplicationcontext(), "发送请求道服务器", 0).show();
// loginbyasynchttpclientget(username, userpass);
loginasynchttpclientpost(username, userpass);
}
break;
default:
}
* 通过开源框架asynchttpclient的post请求处理
* @param username
* @param userpass
private void loginasynchttpclientpost(final string username,
final string userpass) {
// 发送请求到服务器
asynchttpclient client = new asynchttpclient();
string url = "http://172.16.237.144:8080/login/loginservlet";
// 创建请求参数
requestparams params = new requestparams();
params.put("username", username);
params.put("userpass", userpass);
// 执行post方法
client.post(url, params, new asynchttpresponsehandler() {
@override
public void onsuccess(int statuscode, header[] headers,
byte[] responsebody) {
// 设置值
tv_result.settext(new string(responsebody));
public void onfailure(int statuscode, header[] headers,
byte[] responsebody, throwable error) {
// 打印错误信息
error.printstacktrace();
});
* 通过开源框架asynchttpclient的get请求处理
private void loginbyasynchttpclientget(final string username,
// 创建异步请求端对象
string url = "http://172.16.237.144:8080/login/loginservlet?username="
+ username + "&userpass=" + userpass;
// 发送get请求对象
client.get(url, new asynchttpresponsehandler() {
// statuscode:状态返回码,headers:头部请求信息,responsebody返回结果
// 输出错误信息
}
为了加强我们理解,在onsuccess方法中加入一些测试语句:
在控制台输出结果如下:
jar文件资源:http://download.csdn.net/detail/zhaoyazhi2129/7400787
源码:http://download.csdn.net/detail/zhaoyazhi2129/7400799