httpclient以post方式访问服务器
访问服务器的原理都差不多,前面的已经说过了,忘记的话再去看一遍。
new Thread(){
public void run() {
try {
String path = "http://192.168.1.100:8080/login?";
System.out.println(path);
HttpClient client = new DefaultHttpClient();
// 指定了 post发送的请求的方式
HttpPost post = new HttpPost(path);
//传递给 服务器 要带过去的参数 的信息
List<NameValuePair> list = new ArrayList<NameValuePair>();
// 将 带过去 的参数 放到 一个 nameValuePair 中, 然后再 放到 一个list 中,然后再将这个list
// 给 要带过去的数据 实体
list.add(new BasicNameValuePair("number", number));
list.add(new BasicNameValuePair("pwd", pwd));
// 设置 带给服务器的 参数的信息
// number=456&pwd=123
//设置 要带给服务器的 数据 实体
post.setEntity(new UrlEncodedFormEntity(list,"UTF-8"));
// http://192.168.1.100:8080/login
//收到的 来自于服务器端的响应的 数据
HttpResponse response = client.execute(post);
//http 的相应 分为 响应行, 响应头, 响应体
// HTTP/1.1 200 OK
int code = response.getStatusLine().getStatusCode();
if(code==200){
InputStream in = response.getEntity().getContent();
String data = StreamTool.decodeStream(in);
Message msg = Message.obtain();
msg.what=SUCCESS;
msg.obj = data;
mHandler.sendMessage(msg);
}
} catch (Exception e) {
e.printStackTrace();
Message msg = Message.obtain();
msg.what=ERROR;
mHandler.sendMessage(msg);
}
};
}.start();
其中调试查看发送数据是以这一的结构