您的位置:首页 > 理论基础 > 计算机网络

使用第三方框架实现异步的HttpClient

2016-04-21 22:42 429 查看
这篇博客将介绍使用第三方框架实现异步的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();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: