教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

PHP培训之Post方式提交数据到服务器

更新时间:2016年06月30日14时26分 来源:PHP培训学院 浏览次数:

我们已经了解Get方式请求数据到服务器的编写(参考:Get方式提交数据到服务器),下面我们来接着了解Post请求数据的方式。

1.抓取Post数据流

Post方式请求数据的原理是怎样的?与Get方式请求数据的过程有什么区别呢?下面我们通过httpwatch来抓取post方式请求数据的过程。
  • web项目的jsp页面中接着编写post请求表单,效果如图1-1所示:


图1-1所示
图1-1对应的jsp页面代码如例1-1:
  1. jsp代码



  • 在IE浏览器中访问该登录界面,当以post方式点击“提交查询内容”按钮时,抓取数据流如图1-2所示


图1-2所示

1.Get请求和Post请求的区别

通过httpwatch抓取Post数据流(本例图1-2)和Get数据流我们可以得出如下几个结论:
  • Get向特定的资源发出请求,Post向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。get和post只是一种传递数据的方式,get也可以把数据传到服务器,它们的本质都是发送请求和接收结果,只是组织格式和数据量上有差别,这个在http协议中有介绍。
  • Get是把参数拼接到URL路径上传到服务端,在浏览器中是可见的。Post是通过http Post机制,将表内各个字段和对应的内容放在HTML HEADER内一起传送到ACTION属性所指向的URL。
  • Get传输的数据较小(http协议规定最大的数据长度是4KB,但实际中最大的数据长度是2KB),Post传递数据较大。
  • Get安全性非常低,Post安全性相对较高。

2.Android编写Post请求数据

在项目Get方式提交数据到服务器中我们已经编写了其对应的请求页面和请求响应事件,下面是在该项目的基础上编写Post请求数据的页面布局和请求响应事件,具体操作如下:
  • 调整xml页面布局,效果如图1-3所示:


图1-3所示
  • 在Activity中编写“POST方式登录“按钮的点击事件,具体代码如例1-2:
例1-2



参考图1-2的请求报文编写Post请求的点击事件,该方法和get请求的点击事件基本上一致,红色方框区域是两种不同请求方式的区别。由于post请求参数是以流的形式提交到服务器的,所以在建立URL链接时该url路径中无须拼接请求参数。调用setRequestProperty方法来设置请求参数的类型以及长度,并向服务端写数据流。
运行程序,当点击“Post方式登录”按钮时,效果如图1-4所示:

图1-4所示
此时服务端控制台打印出如图1-5所示信息:

图1-5所示

本文版权归传智播客PHP培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客PHP培训学院
首发:http://www.itcast.cn/php/

0 分享到:
和我们在线交谈!