android 通过post发送数据 完成客户端登陆模块
1.get是从服务器上获取数据,post是向服务器传送数据。
2.get是把参数数据队列加到提交表单的
ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML
HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3.对于get方式,服务器端用
Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4.get
传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5.get安全性非常低,post安全性较高。
优酷:http://v.youku.com/v_show/id_XODU1MzExMjUy.html
爱奇艺:http://www.iqiyi.com/w_19rsechp2t.html#vfrm=8-7-0-1
以下是通过post发送数据,完成在客户端登陆模块,当然这得搭建服务器,如果有对服务器不熟悉的同学,可以发送邮件到[email protected],很乐意帮助大家,以下是MainActivity.java,布局文件不再给出;
public class MainActivity extends Activity {
private EditText ed_name;
private EditText ed_password;
private Button btn_login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ed_name = (EditText)findViewById(R.id.username);
ed_password = (EditText)findViewById(R.id.upassword);
btn_login = (Button)findViewById(R.id.btn_login);
btn_login.setOnClickListener(new MyButtonListener());
}
class MyButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
String name = ed_name.getText().toString();
String password = ed_password.getText().toString();
PostThread pt = new PostThread(name, password);
pt.start();
}
}
/*登陆成功放回服务器字符
* 登陆失败则放回不了???
*
*/
//post 方法 发送数据到服务器
class PostThread extends Thread{
String name;
String password;
public PostThread(String name, String password) {
super();
this.name = name;
this.password = password;
}
@Override
public void run() {
super.run();
HttpClient httpClient = new DefaultHttpClient();
String url = "http://192.168.191.1:8080/2.5/LoginServlet";
HttpPost httpPost = new HttpPost(url);
//NameValuePair对象,代表了一个需要发往服务器的键值对
NameValuePair pair1 = new BasicNameValuePair("username", name);
NameValuePair pair2 = new BasicNameValuePair("upassword", password);
//使用集合类将其包装起来
ArrayList<NameValuePair> pairs = new ArrayList<NameValuePair>();
pairs.add(pair1);
pairs.add(pair2);
//请求体代表了了请求对象
try {
HttpEntity requestEntity = new UrlEncodedFormEntity(pairs);
//将请求体放置在请求对象中
httpPost.setEntity(requestEntity);
HttpResponse response = httpClient.execute(httpPost);
if(response.getStatusLine().getStatusCode() == 200){
HttpEntity entity = response.getEntity();
BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent()));
String reslut = reader.readLine();
System.out.println(reslut);
Log.d("HttpPost","result"+reslut);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
本文出自 “7851921” 博客,请务必保留此出处http://7861921.blog.51cto.com/7851921/1595032
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。