使用第三方框架實現異步的HttpClient

這篇博客將介紹使用第三方框架實現異步的HttpClient

首先到http://download.csdn.net/detail/u010105970/9498649中下載異步的HttpClient框架android-async-http-master,下載完成後會獲得一個壓縮包



使用eclipse創建一個android工程,並且將壓縮包解壓,解壓後進入com目錄下



將loopj文件夾拷貝到創建好的android工程中的com文件夾中



核心代碼,其實就是修改MainActivity.java如下,其他部分的代碼和我的上一篇博客使用HttpClient實現Post請求和Get請求中的代碼一樣

package com.fyt.ansydemo;

import java.net.URLEncoder;

import org.apache.http.Header;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;

public class MainActivity extends Activity {
	
	private EditText et_username;
	private EditText et_password;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		//獲得佈局文件上的用戶名輸入框和密碼輸入框
		et_username = (EditText)findViewById(R.id.et_username);
		et_password = (EditText)findViewById(R.id.et_password);
	}
	
	//使用get方式發送數據到服務器
	public void get(View view) {
		
		//獲得用戶輸入的用戶名和密碼
		final String username = et_username.getText().toString();
		final String password = et_password.getText().toString();
		
		//設置網址
		//設置網址
        final String url = "http://192.168.0.101:8080/WebProject/servlet/LoginServlet" +
                "?username=" + URLEncoder.encode(username) + "&" + "password=" + password;
        
        //創建異步的HttpClient
        AsyncHttpClient ahc = new AsyncHttpClient();
        
        //發送get請求提交數據
        ahc.get(url, new MyResponseHandler());
	}
	
	//使用post方式發送數據到服務器
	public void post(View view) {
	
		//獲得用戶輸入的用戶名和密碼
    	final String username = et_username.getText().toString();
    	final String password = et_password.getText().toString();
    	
    	//設置url地址
    	String url = "http://192.168.0.101:8080/WebProject/servlet/LoginServlet";
    	
    	//創建異步httpclient
    	AsyncHttpClient ahc = new AsyncHttpClient();
    	
    	//發送post請求提交數據
    	//把要提交的數據封裝至RequestParams對象
    	RequestParams params = new RequestParams();
    	params.add("username", username);
    	params.add("password", password);
    	
    	ahc.post(url, params, new MyResponseHandler());
	}
	
	//創建一個內部類
	class MyResponseHandler extends AsyncHttpResponseHandler {
		
		//請求服務器成功時,此方法被調用
		@Override
		public void onSuccess(int statusCode, Header[] headers,
				byte[] responseBody) {
			
			//創建吐司對話框用於顯示提示信息
			Toast.makeText(MainActivity.this, new String(responseBody), Toast.LENGTH_SHORT).show();
		}
		
		//請求失敗此方法調用
		@Override
		public void onFailure(int statusCode, Header[] headers,
				byte[] responseBody, Throwable error) {
			
			Toast.makeText(MainActivity.this, "請求失敗", Toast.LENGTH_SHORT).show();
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章