1、使用HttpClient发送GET请求:
例如:
public void event1(View v){
//按钮事件方法
//从文本框获取账号密码
EditText et_name = (EditText) findViewById(R.id.et_name);
EditText et_pass = (EditText) findViewById(R.id.et_pass);
String name = et_name.getText().toString();
String pass = et_pass.getText().toString();
//将网址拼接成一个url,定义为final
final String path = "http://localhost/Web/servlet/Login?name=" + URLEncoder.encode(name) + "&pass=" + pass;//使用URLEncoder编码中文字符,否则出现乱码
Thread t = new Thread(){
@Override
public void run() {
//使用httpClient框架提交
HttpClient client = new DefaultHttpClient();//创建client对象
HttpGet get = new HttpGet(path);//创建get请求对象
try {
HttpResponse response = client.execute(get);//使用client发送get请求
StatusLine line = response.getStatusLine();//获取状态行
int code = line.getStatusCode();//获取状态码
if(code == 200){
HttpEntity entity = response.getEntity();//获取实体
InputStream is = entity.getContent();//返回的是一个出入流
String text = Tools.getTextFromStream(is);//自定义一个Tools类将流里面的数据读取出来
Message msg = handler.obtainMessage();//发送消息给主线程,显示获取的结果
msg.obj = text;
handler.sendMessage(msg);
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
t.start();//启动线程
}
2、使用HttpClient发送POST请求:和之前的GET类似
例如:
public void event2(View v){
//获取用户输入的账号密码
EditText et_name = (EditText) findViewById(R.id.et_name);
EditText et_pass = (EditText) findViewById(R.id.et_pass);
final String name = et_name.getText().toString();
final String pass = et_pass.getText().toString();
final String path = "http://localhost/Web/servlet/Login";//这个地方不用将用户名密码拼接
Thread t = new Thread(){
@Override
public void run() {
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(path)