android-async-http获取请求体,Android 提交数据之AsyncHttpClient

该博客介绍了如何在Android应用程序中使用Asynchttpclient库进行GET和POST网络请求。首先,它展示了如何初始化EditText控件以获取用户输入的用户名和密码。接着,详细说明了GET请求的实现,包括URL编码和设置请求路径。然后,通过AsyncHttpClient创建实例并定义响应处理。对于POST请求,同样展示了如何构建请求参数和发起请求。最后,处理了请求成功和失败的情况,显示服务器返回的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前提是要导入Asynchttpclient lib包

public class MainActivity extends Activity {

private EditText et_username;

private EditText et_password;

String path;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// [1]找到我们关心的控件

et_username = (EditText) findViewById(R.id.et_username);

et_password = (EditText) findViewById(R.id.et_password);

}

// 点击按钮 进行get方式提交数据

public void click1(View v) {

String name = et_username.getText().toString().trim();

String pwd = et_password.getText().toString().trim();

//[2.1]定义get方式要提交的路径 小细节 如果提交中文要对name 和 pwd 进行一个urlencode 编码

try {

path = "http://192.168.11.73:8080/login/LoginServlet?username="+URLEncoder.encode(name, "utf-8")+"&password="+URLEncoder.encode(pwd, "utf-8")+"";

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

//[3]使用开源项目进行get请求

//[3.1]创建asynchttpclient

AsyncHttpClient client = new AsyncHttpClient();

//[3.2]进行get 请求

client.get(path, new AsyncHttpResponseHandler() {

//请求成功的回调方法

@Override

public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {

try {

Toast.makeText(getApplicationContext(), new String(responseBody,"gbk"), 1).show();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

}

//请求失败

@Override

public void onFailure(int statusCode, Header[] headers,

byte[] responseBody, Throwable error) {

}

});

}

// [1]点击按钮 进行post方式提交数据

public void click2(View v) {

//[2]获取用户名和密码

String name = et_username.getText().toString().trim();

String pwd = et_password.getText().toString().trim();

String path = "http://192.168.11.73:8080/login/LoginServlet";

//[3.1]创建asynchttpclient

AsyncHttpClient client = new AsyncHttpClient();

//[3.1.0]准备请求体的内容

RequestParams params = new RequestParams();

params.put("username", name);

params.put("password", pwd);

//[3.2]进行post请求 params 请求的参数封装

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

//请求成功 登录成功

@Override

public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {

try {

Toast.makeText(getApplicationContext(), new String(responseBody,"gbk"), 1).show();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

}

@Override

public void onFailure(int statusCode, Header[] headers,

byte[] responseBody, Throwable error) {

}

});

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值