找到下載下傳檔案的源碼,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