三种POST和GET的提交方式

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三种POST和GET的提交方式

向服务器提交数据有两种方式,post和get。两者的区别主要有三点,安全性、长度限制、数据结构。其中get请求安全性相比较而言较差,数据长度受浏览器地址栏限制,没有方法体。两种都是较为重要的数据提交方式。现简单介绍一下三种post和get的提交方式。无论是哪种方法实现post和get,get 的访问路径都要携带数据,而post提交是把数据放在方法体中。

普通方法实现get/post提交:

严格遵照Http协议进行数据传输。在安卓开发环境下,由于主线程不能进行网络访问,因此需要在开启一个子线程向服务器提交数据。为了更加直观的观察数据,可以在程序屏幕上显示服务器反馈信息。又由于子线程无法更改UI界面,因此需要引入Hnndler代理器。实现get/post提交基本步骤就是,获取URL路径,根据路径得到Http连接,用HttpURLConnection对象设置相关的http配置信息、提交方式以及获取反馈码。当响应码为200时表示提交成功,可以通过HttpURLConnection以流的形式获取反馈信息。

普通GRT提交方式:

public void load(View view){

final String qq = et_qq.getText().toString().trim();

final String pwd = et_pwd.getText().toString().trim();

if (TextUtils.isEmpty(qq) || TextUtils.isEmpty(pwd)) {

Toast.makeText(MainActivity.this, "qq号或密码为空", 0).show();

return;

}

final String path = "http://192.168.1.114:8080/qqload/qqload?qq=" + qq

+ "&pwd=" + pwd;

new Thread() {

public void run() {

try {

URL url = new URL(path);

HttpURLConnection conn = (HttpURLConnection) url

.openConnection();

conn.setRequestMethod("GET");

conn.setReadTimeout(5000);

int code = conn.getResponseCode();

if (code == 200) {

InputStream is = conn.getInputStream();

String result = StreamTools.ReadStream(is);

Message msg = Message.obtain();

msg.what = SUCCESS;

msg.obj = result;

handler.sendMessage(msg);

} else {

Message msg = Message.obtain();

msg.what = ERROR1;

handler.sendMessage(msg);

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

Message msg = Message.obtain();

msg.what = ERROR2;

handler.sendMessage(msg);

}

}

}.start();

}

普通POST提交方式:

复制代码

public void load(View view){

final String qq = et_qq.getText().toString().trim();

final String pwd = et_pwd.getText().toString().trim();

if (TextUtils.isEmpty(qq) || TextUtils.isEmpty(pwd)) {

Toast.makeText(MainActivity.this, "qq号或密码为空", 0).show();

return;

}

final String path = "http://192.168.1.114:8080/qqload/qqload";

new Thread() {

public void run() {

try {

URL url = new URL(path);

HttpURLConnection conn = (HttpURLConnection) url

.openConnection();

conn.setRequestMethod("POST");

conn.setReadTimeout(5000);

conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

String data = "qq="+URLEncoder.encode(qq,"utf-8")+"&pwd=" + URLEncoder.encode(pwd,"utf-8");

conn.setRequestProperty("Content-Length",String.valueOf(data.length()));

etDoOutput(true);

conn.getOutputStream().write(data.getBytes());

int code = conn.getResponseCode();

if (code == 200) {

InputStream is = conn.getInputStream();

String result = StreamTools.ReadStream(is);

Message msg = Message.obtain();

msg.what = SUCCESS;

msg.obj = result;

handler.sendMessage(msg);

相关文档
最新文档