HTTP协议与XML
HTTP协议即超文本传输协议,它详细规定了浏览器和万维网服务器之间的通信规则,是通过因特网传送万维网文档的数据传送协议。
在使用PHP做HTTP服务端的时候,Apache为我们解析好了大部分的协议,并提供了非常方便的方法以供我们获取需要的信息。
其中,我们需要关心的两个全局变量$_GET和$HTTP_RAW_POST_DATA。Apache解析好请求的HTTP协议,把请求的get数据和post变量写$_GET和$HTTP_RAW_POST_DATA变量中。我们只要直接使用$_GET和$HTTP_RAW_POST_DATA就能取到微信后台传给我们的数据。
$_GET是一个数组;key是各个GET数据的key;$HTTP_RAW_POST_DATA是一个字符串,包含body的所有内容。在设置这些变量的同时,Apache还为我们设置了一个$_POST变量,它用来存前台HTML的form表达提交的数据。大家不要五一为$_POST变量就是想要的POST数据。
HTTP请求中的POST数据,POST数据与GET不同,它不会有KEY值,POST数据一般都比较大,GET数据往往比较小。
XML是一种可扩展的标记语言,可以用来标记数据,定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
XML的语法基本模式是:分别用<itemName>和</itemName>来表示一个条目的开始和结束。微信后台给我们发的XML没有属性字段。字符串用“![CDATA[text]]"表示,其中text可以是任何字符串,用CDATA包起来的目的是让text的内容不会解析成别的条目,只会解析成字符串。整个XML文档必须要有一个跟条目,该条目可以是任意名字。微信后台的跟条目是以<xml>开始</xml>结束的。
PHP为我们提供了一个简单的函数来解析xml,simplexml_load_string.它接收5个参数,第一个是需要解析的字符串,其他4个参数都是可选的。在解析成功的时候刽返回一个SimpleXMLElement的对象,如果解析失败会返回false.一般在入参中传入的XML数据不符合规范的时候才会解析失败返回false,
PHP的全等号”===",只有当全等号左边和右边的表达式的大小和类型完全相等时才返回true,虽然PHP是弱类型语言,但并不代表变量没有类型。两个 等号"=="只能判断两边的值是否相等。
HTTP协议与XML相关推荐
- soap协议的xml数据转json
import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.jso ...
- 【日常学习】XML文件约束,Tomcat服务器和HTTP协议
文章目录 XML文件约束,Tomcat服务器和HTTP协议 1. XML文件约束[了解] 1.1 约束方式 1.2 DTD约束 1.3 Schema 2. Tomcat服务器 2.1 JavaWEB服 ...
- 拿下计网协议后,我就是公园里最靓的仔
下面我们就要对不同的协议层进行分类介绍了,我们还是采用自上而下的方式来介绍,这种介绍对读者来说更容易接纳,吸收程度更好. 一般情况下,用户不太在意网络应用程序实际上是按照怎样的机制运行的,但我们是程序 ...
- 第六章 ppp协议实验
第六章 ppp协议实验步骤 <?xml:namespace prefix = o ns = "urn:schemas-micro ...
- 因特网的协议集称为TCP/IP协议集
1)因特网协议集 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> ...
- xml 里设置变量_[技巧] ApiPost操作设置
ApiPost设置介绍和作用 一.默认请求超时时间 ApiPost默认设置的是25000毫秒,就是在25秒钟之内响应没有成功的话就默认失败,我们也可以自定义设置8秒或者10秒. 二.默认请求Metho ...
- C#网络编程:4订立协议和发送文件
前面两篇文章所使用的范例都是传输字符串,有的时候我们可能会想在服务端和客户端之间传递文件.比如,考虑这样一种情况,假如客户端显示了一个菜单,当我们输入S1.S2或S3(S为Send缩写)时,分别向服务 ...
- 什么是 XML Web Service
什么是 XML Web Service 2008-09-10 11:33 XML Web Service 是在 Internet 上进行分布式计算的基本构造块.开放的标准以及对用户和应用程序之间的通信 ...
- (转)C#网络编程(订立协议和发送文件) - Part.4
源码下载:http://www.tracefact.net/SourceCode/Network-Part4.rar C#网络编程(订立协议和发送文件) - Part.4 文件传输 前面两篇文章所使用 ...
最新文章
- 一则利用内核漏洞获取root权限的案例【转】
- Leangoo_多团队,大规模敏捷开发实现过程
- 12C OCP 1ZO-071 题库(8月以前)
- 【Mysql】MySQL event 计划任务
- webform数据导出
- docker mysql8
- 计算机名会影响电脑网络吗,电脑接网线会比连WiFi网速快吗【详细介绍】
- 【滤波器设计】基于matlab GUI窗函数法高通+低通+带通带阻FIR滤波器设计【含Matlab源码 072期】
- smartadmin mysql_SmartAdmin 一套基于SpringBoot和Vue前后端分离的互联网企业级的通用型中后台解决方案...
- 流量造假:“蔡徐坤微博转发过亿”幕后推手星援 App 开发者一审获刑五年
- 记DeeCamp 2019夏面试
- vue : 无法加载文件 C:\Users\EDZ\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本。有 关详细信息,请参阅 https:/go.microsoft
- python随机漫步
- markdown和marktop是啥关系?
- 腾讯研究院发布《2021数字科技前沿应用趋势》
- linux服务器关机日期,linux服务器last查看关机记录
- RS232接口EMC设计方案
- 网站实现新浪微博登录
- 推荐一款牛逼的Windows神器!功能很强大!
- Android 带你玩转实现游戏2048 其实2048只是个普通的控件(转)
热门文章
- Android电量统计
- 华为云GaussDB(for Redis)GaussDB(for Redis)全面对比Codis
- gaussdb数据库 oracle,GaussDB OLTP 100 华为数据库的创建脚本和模板
- java 开发安卓im_Android端IM应用中的@人功能实现:仿微博、QQ、微信,零入侵、高可扩展...
- Joint Discriminative and Generative Learning for Person Re-identification
- 使用ffmpeg将视频切片并加密
- 使用Postman调试API遇到“400 Bad Request”问题
- iOS 9-iPhone6s-iPadmini4企业证书信任
- 小程序开发-用户对自己信息的更改
- 如何获取百度地图API