- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Post方式提交数据到服务器我们已经了解Get方式请求数据到服务器的编写(参考:Get方式提交数据到服务器),下面我们来接着了解Post请求数据的方式。抓取Post数据流Post方式请求数据的原理是怎样的?与Get方式请求数据的过程有什么区别呢?下面我们通过httpwatch来抓取post方式请求数据的过程。在web项目的jsp页面中接着编写post请求表单,效果如图1-1所示:图1-1所示图1-1对应的jsp页面代码如例1-1:jsp代码%@ page language=java contentType=text/html; charset=utf-8 pageEncoding=utf-8%!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN /TR/html4/loose.dtdhtmlheadmeta http-equiv=Content-Type content=text/html; charset=utf-8titleInsert title here/title/headbodybrGet方式提交数据form action=LoginServlet method=get用户名:input name=username type=textbr密码:input name=password type=passwordbrinput type=submit/formbrPost方式提交数据form action=LoginServlet method=post用户名:input name=username type=textbr密码:input name=password type=passwordbrinput type=submit/form/body/html在IE浏览器中访问该登录界面,当以post方式点击“提交查询内容”按钮时,抓取数据流如图1-2所示图1-2所示Get请求和Post请求的区别通过httpwatch抓取Post数据流(本例图1-2)和Get数据流(参考Get方式提交数据流图1-5)我们可以得出如下几个结论:Get向特定的资源发出请求,Post向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。get和post只是一种传递数据的方式,get也可以把数据传到服务器,它们的本质都是发送请求和接收结果,只是组织格式和数据量上有差别,这个在http协议中有介绍。Get是把参数拼接到URL路径上传到服务端,在浏览器中是可见的。Post是通过http Post机制,将表内各个字段和对应的内容放在HTML HEADER内一起传送到ACTION属性所指向的URL。Get传输的数据较小(http协议规定最大的数据长度是4KB,但实际中最大的数据长度是2KB),Post传递数据较大。Get安全性非常低,Post安全性相对较高。Android编写Post请求数据在项目Get方式提交数据到服务器中我们已经编写了其对应的请求页面和请求响应事件,下面是在该项目的基础上编写Post请求数据的页面布局和请求响应事件,具体操作如下:调整xml页面布局,效果如图1-3所示:图1-3所示在Activity中编写“POST方式登录“按钮的点击事件,具体代码如例1-2:例1-2public void loginByPost(View view) {final String name = et_name.getText().toString().trim();final String pwd = et_pwd.getText().toString().trim();if (TextUtils.isEmpty(name) || TextUtils.isEmpty(pwd)) {Toast.makeText(this, 用户名密码不能为空, 0).show();} else {try {String path = 00:8080/web/LoginServlet;// 1.定义请求的urlURL url = new URL(path);// 2.建立一个http的连接HttpURLConnection conn = (HttpURLConnection) url.openConnection();// 3.设置一些请求的参数conn.setRequestMethod(POST);// 注意单词字母要大写。conn.setRequestProperty(User-Agent,Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0));conn.setRequestProperty(
文档评论(0)