使用第三方框架实现异步的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();
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章