三种post和get的提交方式

上传人:第*** 文档编号:30559949 上传时间:2018-01-30 格式:DOC 页数:7 大小:48.50KB
返回 下载 相关 举报
三种post和get的提交方式_第1页
第1页 / 共7页
三种post和get的提交方式_第2页
第2页 / 共7页
三种post和get的提交方式_第3页
第3页 / 共7页
三种post和get的提交方式_第4页
第4页 / 共7页
三种post和get的提交方式_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《三种post和get的提交方式》由会员分享,可在线阅读,更多相关《三种post和get的提交方式(7页珍藏版)》请在金锄头文库上搜索。

1、三种 POST 和 GET 的提交方式向服务器提交数据有两种方式,post 和 get。两者的区别主要有三点,安全性、长度限制、数据结构。其中 get 请求安全性相比较而言较差,数据长度受浏览器地址栏限制,没有方法体。两种都是较为重要的数据提交方式。现简单介绍一下三种 post 和 get 的提交方式。无论是哪种方法实现 post 和 get,get 的访问路径都要携带数据,而 post 提交是把数据放在方法体中。普通方法实现 get/post 提交: 严格遵照 Http 协议进行数据传输。在安卓开发环境下,由于主线程不能进行网络访问,因此需要在开启一个子线程向服务器提交数据。为了更加直观的观

2、察数据,可以在程序屏幕上显示服务器反馈信息。又由于子线程无法更改 UI 界面,因此需要引入 Hnndler 代理器。实现 get/post 提交基本步骤就是,获取 URL 路径,根据路径得到 Http 连接,用 HttpURLConnection 对象设置相关的 http 配置信息、提交方式以及获取反馈码。当响应码为 200 时表示提交成功,可以通过 HttpURLConnection 以流的形式获取反馈信息。 普通 GRT 提交方式:public void load(View view)final String qq = et_qq.getText().toString().trim();f

3、inal 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+ new Thread() public void run() try URL url = new URL(path);HttpUR

4、LConnection 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.o

5、bj = result;handler.sendMessage(msg); else Message msg = Message.obtain();msg.what = ERROR1;handler.sendMessage(msg); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();Message msg = Message.obtain();msg.what = ERROR2;handler.sendMessage(msg);.start();普通 POST 提交方式:复制代码public vo

6、id 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

7、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)+ conn.

8、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 = S

9、UCCESS;msg.obj = result;handler.sendMessage(msg); else Message msg = Message.obtain();msg.what = ERROR1;handler.sendMessage(msg); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();Message msg = Message.obtain();msg.what = ERROR2;handler.sendMessage(msg);.start();复制代码用 httpclie

10、n 实现 get/post 提交的只需要一下几个步骤:1. 创建 HttpClient 对象,实现打开浏览器的功能HttpClient client = new DefaultHttpClient();2. 输入地址或者数据 ,用到 HttpGet()或 HttpPost(),传入要访问的路径,得到 HttpGet 或 HttpPost 对象。HttpGet httpGet = new HttpGet(path);3. 把获得的 HttpGet 或 HttpPost 对象发送到服务器,实现敲回车的功能,得到 HttpResponse 对象。HttpResponse response = cli

11、ent.execute(httpGet);4. 得到 HttpResponse 对象获取状态行中的状态码,判断状态码状态码。int code = response.getStatusLine().getStatusCode();5. 同样用 HttpResponse 对象获取相应内容,存入流对象。最后将得到的流对象转为字符串进行显示。InputStream is = response.getEntity().getContent();其中要注意的一点是用 post 请求时要传递值所以要多出一个步骤。具体而言,先创建一个 list 集合,集合的泛型用 NameValuePair 表示,类似于键值

12、对的形式存储要传递的数据。接着向集合中添加要提交数据。最后用 HttpPost 对象把集合存入请求体中。用 HttpClient 实现 GET 提交:复制代码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

13、号或密码为空, 0).show();return;final String path = http:/192.168.1.114:8080/qqload/qqload?qq= + qq+ new Thread() public void run() try HttpClient client = new DefaultHttpClient();HttpGet httpget = new HttpGet(path);HttpResponse response = client.execute(httpget);int code = response.getStatusLine().getStat

14、usCode();if (code = 200) InputStream is = response.getEntity().getContent();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 (E

15、xception e) / TODO Auto-generated catch blocke.printStackTrace();Message msg = Message.obtain();msg.what = ERROR2;handler.sendMessage(msg);.start();复制代码用 HttpClient 实现 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 HttpClient client = new DefaultHttpClient();HttpPost httppost = ne

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号