Httpclient通过get和post方式发送请求
public void getClick(View v){
EditText et1 = (EditText)findViewById(R.id.name);
String name = et1.getText().toString();
EditText et2 = (EditText)findViewById(R.id.pass);
String pass = et2.getText().toString();
try {
final String path = "http://169.254.165.163:8080/Web2/servlet/Login?"+"name="+URLEncoder.encode(name,"utf-8")+"&pass="+pass;
Thread thread = new Thread(){
public void run() {
try {
//新建一个客户端请求
HttpClient client = new DefaultHttpClient();
//创建一个get请求对象
HttpGet get = new HttpGet(path);
//客户端像服务器发送get请求,获取客户端的响应
HttpResponse response = client.execute(get);
//获取状态行
StatusLine line = response.getStatusLine();
//获取状态码
int code = line.getStatusCode();
if(code==200){
//获取实体
HttpEntity entity = response.getEntity();
//从实体里获取输入流
InputStream is = entity.getContent();
byte[] b = new byte[1024];
int len;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
while((len=is.read(b))!=-1){
bos.write(b,0,len);
}
String str = bos.toString("UTF-8");
Message msg = new Message();
msg.obj = str;
handler.sendMessage(msg);
}
}catch (Exception e) {
e.printStackTrace();
}
}
};
thread.start();
} catch (Exception e) {
e.printStackTrace();
}
}
public void postClick(View v){
try {
final String path = "http://169.254.165.163:8080/Web2/servlet/Login";
Thread thread = new Thread(){
public void run() {
EditText et1 = (EditText)findViewById(R.id.name);
String name = et1.getText().toString();
EditText et2 = (EditText)findViewById(R.id.pass);
String pass = et2.getText().toString();
HttpClient client = new DefaultHttpClient();
//新建一个post请求
HttpPost post = new HttpPost(path);
//把要提交的数据封装到post中
List<NameValuePair> parameters = new ArrayList<NameValuePair>();
//arg[0]:表单的名字
//arg[1]:表单的内容
BasicNameValuePair bnvp1 = new BasicNameValuePair("name", name);
BasicNameValuePair bnvp2 = new BasicNameValuePair("pass", pass);
parameters.add(bnvp1);
parameters.add(bnvp2);
UrlEncodedFormEntity entity = null;
try {
//提交表单专门的entity
entity = new UrlEncodedFormEntity(parameters, "utf-8");
//把实体对象封装到post中
post.setEntity(entity);
//发送请求,获取响应
HttpResponse response = client.execute(post);
StatusLine line = response.getStatusLine();
int code = line.getStatusCode();
if(code==200){
InputStream is = response.getEntity().getContent();
byte[] b = new byte[1024];
int len;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
while((len=is.read(b))!=-1){
bos.write(b,0,len);
}
String str = bos.toString("UTF-8");
Message msg = new Message();
msg.obj = str;
handler.sendMessage(msg);
}
} catch (Exception e) {
e.printStackTrace();
}
};
};
thread.start();
}catch (Exception e) {
e.printStackTrace();
}
}
}
异步HttpClient发送get与post请求(导入源码android-async-http-master)
实现发法可以参考example内容
最终实现:
public void getClick(View v) throws Exception{
EditText et1 = (EditText)findViewById(R.id.name);
String name = et1.getText().toString();
EditText et2 = (EditText)findViewById(R.id.pass);
String pass = et2.getText().toString();
final String path = "http://169.254.165.163:8080/Web2/servlet/Login";
//新建一个异步处理客户端请求
AsyncHttpClient client = new AsyncHttpClient();
//设置请求属性
RequestParams rp = new RequestParams();
rp.put("name", name);
rp.put("pass", pass);
//用对应方法发送请求
client.get(path,rp,new MyHandler());
}
class MyHandler extends AsyncHttpResponseHandler{
@Override
public void onSuccess(int statusCode, Header[] headers,
byte[] responseBody) {
Toast.makeText(MainActivity.this, new String(responseBody), 0).show();
}
@Override
public void onFailure(int statusCode, Header[] headers,
byte[] responseBody, Throwable error) {
Toast.makeText(MainActivity.this, "连接失败", 0).show();
}
}
public void postClick(View v) throws Exception{
EditText et1 = (EditText)findViewById(R.id.name);
String name = et1.getText().toString();
EditText et2 = (EditText)findViewById(R.id.pass);
String pass = et2.getText().toString();
final String path = "http://169.254.165.163:8080/Web2/servlet/Login";
//新建一个异步处理客户端请求
AsyncHttpClient client = new AsyncHttpClient();
RequestParams rp = new RequestParams();
rp.put("name", name);
rp.put("pass", pass);
client.post(path,rp,new MyHandler());
}
}