Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $HTTP\u原始\u POST\u数据的使用_Php_Web Services_Nusoap - Fatal编程技术网

Php $HTTP\u原始\u POST\u数据的使用

Php $HTTP\u原始\u POST\u数据的使用,php,web-services,nusoap,Php,Web Services,Nusoap,我正在搜索这个的确切定义,但仍然找不到满意的定义。 我在使用nusoap webservice,有一行 $server->service($HTTP_RAW_POST_DATA); 有人能告诉我$HTTP\u RAW\u POST\u数据的用途吗。 根据我的研究,这是为了收集原始的post数据。但我对答案并不满意。原始post数据的确切含义是什么 HTTP消息由一系列标头和正文组成(根据标头的不同,可以是必需的/可选的/禁止的) 对于URLhttp://stackoverflow.com

我正在搜索这个的确切定义,但仍然找不到满意的定义。 我在使用nusoap webservice,有一行

$server->service($HTTP_RAW_POST_DATA);
有人能告诉我$HTTP\u RAW\u POST\u数据的用途吗。
根据我的研究,这是为了收集原始的post数据。但我对答案并不满意。原始post数据的确切含义是什么

HTTP消息由一系列标头和正文组成(根据标头的不同,可以是必需的/可选的/禁止的)

对于URL
http://stackoverflow.com/questions/43519007/usage-of-http-raw-post-data
,正文是用于生成您正在阅读的文档的HTML

如果您对它发出GET请求,那么就没有请求主体

如果你提出一个POST请求,那么将会有。如果您提交表单,它将使用您可以使用
enctype
属性指定的格式之一进行编码

通常,在PHP中,当您想要处理该数据时,您会使用
$\u POST
,它在正文解码后包含内容


原始主体是解码之前的主体。

HTTP请求由两部分组成。一组标题和正文

标题包括被请求的URL和缓存控件帮助程序(例如“我有一个昨天的版本,只有在有更改时才给我一个新版本,好吗?”)

正文可能会出现,也可能不会出现,具体取决于请求的类型。POST请求具有主体

主体可以是客户喜欢的任何格式。其中一个标头将告诉服务器格式是什么

HTML表单使用了几种格式,PHP知道如何解析这些格式并将数据放入$\u POST

如果数据是另一种格式,比如JSON,或者如果数据不符合PHP的怪癖(比如在同名键的末尾有[]的规则),那么您可能希望直接访问数据,以便自己解析。这就是原始POST数据

  • $\u POST
    包含URL编码(应用程序/www URL编码)变量,这些变量被发布到脚本中,PHP为您解码。在处理HTML表单数据时,使用这个

  • 文件获取内容(“php://input“”
    -获取原始POST数据,在编写API和需要XML/JSON/…时需要使用此数据。。。无法通过PHP解码为$\u POST的输入

  • $HTTP_RAW_POST_DATA
    -理论上与上述相同,但取决于php.ini。并且在PHP7中不再可用


大多数情况下,当我们处理HTTP POST请求时,我们会查看从浏览器提交表单的结果。这将以标准方式格式化数据(“查询字符串编码”或“多部分/表单数据”),对一组键值对进行编码。PHP自动将此格式的任何请求解析为超级全局数组
$\u POST

然而,实际的HTTP请求主体只是一段文本,在某些情况下,我们希望将其视为文本。例如,SOAP请求使用XML文档作为POST请求的主体
$HTTP_RAW_POST_DATA
允许您访问此文本-它是“RAW”,因为它尚未被处理,只是作为字符串返回给您


值得注意的是,
$HTTP\u RAW\u POST\u DATA
是一种访问此数据的旧方法,而在较新版本的PHP中,正确的方法是使用
file\u get\u contents('php://input');其中
php://input
是一个表示相同原始数据的虚拟文件。

说得很清楚,不是吗?顶部的块引号感觉不合适。在底部提到删除可能更有意义:“依赖于php.ini”->“依赖于php.ini,在PHP7中不再可用”我很困惑1)为什么不能使用$\u POST?你无法使用POST获得JSON等数据,请自己尝试。我同意你的看法。我知道json或api中的数据无法使用$\u POST获取。我在问为什么?。我们从客户端发送到服务器的参数是post数据,那么为什么我们不能使用$\u post获取数据。我想知道内在的过程,而不仅仅是事实。希望你能理解!这有点混乱,因为您谈论的是HTML,它是响应体,实际上与问题无关。