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相关推荐

  1. soap协议的xml数据转json

    import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.jso ...

  2. 【日常学习】XML文件约束,Tomcat服务器和HTTP协议

    文章目录 XML文件约束,Tomcat服务器和HTTP协议 1. XML文件约束[了解] 1.1 约束方式 1.2 DTD约束 1.3 Schema 2. Tomcat服务器 2.1 JavaWEB服 ...

  3. 拿下计网协议后,我就是公园里最靓的仔

    下面我们就要对不同的协议层进行分类介绍了,我们还是采用自上而下的方式来介绍,这种介绍对读者来说更容易接纳,吸收程度更好. 一般情况下,用户不太在意网络应用程序实际上是按照怎样的机制运行的,但我们是程序 ...

  4. 第六章 ppp协议实验

                                第六章 ppp协议实验步骤 <?xml:namespace prefix = o ns = "urn:schemas-micro ...

  5. 因特网的协议集称为TCP/IP协议集

    1)因特网协议集 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> ...

  6. xml 里设置变量_[技巧] ApiPost操作设置

    ApiPost设置介绍和作用 一.默认请求超时时间 ApiPost默认设置的是25000毫秒,就是在25秒钟之内响应没有成功的话就默认失败,我们也可以自定义设置8秒或者10秒. 二.默认请求Metho ...

  7. C#网络编程:4订立协议和发送文件

    前面两篇文章所使用的范例都是传输字符串,有的时候我们可能会想在服务端和客户端之间传递文件.比如,考虑这样一种情况,假如客户端显示了一个菜单,当我们输入S1.S2或S3(S为Send缩写)时,分别向服务 ...

  8. 什么是 XML Web Service

    什么是 XML Web Service 2008-09-10 11:33 XML Web Service 是在 Internet 上进行分布式计算的基本构造块.开放的标准以及对用户和应用程序之间的通信 ...

  9. (转)C#网络编程(订立协议和发送文件) - Part.4

    源码下载:http://www.tracefact.net/SourceCode/Network-Part4.rar C#网络编程(订立协议和发送文件) - Part.4 文件传输 前面两篇文章所使用 ...

最新文章

  1. 一则利用内核漏洞获取root权限的案例【转】
  2. Leangoo_多团队,大规模敏捷开发实现过程
  3. 12C OCP 1ZO-071 题库(8月以前)
  4. 【Mysql】MySQL event 计划任务
  5. webform数据导出
  6. docker mysql8
  7. 计算机名会影响电脑网络吗,电脑接网线会比连WiFi网速快吗【详细介绍】
  8. 【滤波器设计】基于matlab GUI窗函数法高通+低通+带通带阻FIR滤波器设计【含Matlab源码 072期】
  9. smartadmin mysql_SmartAdmin 一套基于SpringBoot和Vue前后端分离的互联网企业级的通用型中后台解决方案...
  10. 流量造假:“蔡徐坤微博转发过亿”幕后推手星援 App 开发者一审获刑五年
  11. 记DeeCamp 2019夏面试
  12. vue : 无法加载文件 C:\Users\EDZ\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本。有 关详细信息,请参阅 https:/go.microsoft
  13. python随机漫步
  14. markdown和marktop是啥关系?
  15. 腾讯研究院发布《2021数字科技前沿应用趋势》
  16. linux服务器关机日期,linux服务器last查看关机记录
  17. RS232接口EMC设计方案
  18. 网站实现新浪微博登录
  19. 推荐一款牛逼的Windows神器!功能很强大!
  20. Android 带你玩转实现游戏2048 其实2048只是个普通的控件(转)

热门文章

  1. Android电量统计
  2. 华为云GaussDB(for Redis)GaussDB(for Redis)全面对比Codis
  3. gaussdb数据库 oracle,GaussDB OLTP 100 华为数据库的创建脚本和模板
  4. java 开发安卓im_Android端IM应用中的@人功能实现:仿微博、QQ、微信,零入侵、高可扩展...
  5. Joint Discriminative and Generative Learning for Person Re-identification
  6. 使用ffmpeg将视频切片并加密
  7. 使用Postman调试API遇到“400 Bad Request”问题
  8. iOS 9-iPhone6s-iPadmini4企业证书信任
  9. 小程序开发-用户对自己信息的更改
  10. 如何获取百度地图API