今天在做开发的时候,使用到了HTTP协议传递数据,程序如下:
public void sendPost(String skey,String token,String num,String user_id) throws Exception{
post = new HttpPost(url);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("skey", skey));
params.add(new BasicNameValuePair("token",token));
params.add(new BasicNameValuePair("num", num));
params.add(new BasicNameValuePair("user_id", "330"));
post.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
HttpResponse response = httpClient.execute(post);
if (response.getStatusLine().getStatusCode() == 200){
String msg = EntityUtils.toString(response.getEntity());
Looper.prepare();
Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
Looper.loop();
}else{
String msg = "提交信息失败!";
Looper.prepare();
Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
Looper.loop();
}
}
但是在运行的时候发现执行到HttpResponse response = httpClient.execute(post); 这句代码的时候就执行不下去了,既不执行下面的程序也不报异常。
经检查: 已经加入了网络权限;
最后查资料才发现,在Android中如果要使用网络传输需要用多线程来实现。