排错定位到此行:
$postStr=$GLOBALS["HTTP_RAW_POST_DATA"];
搜索后发现PHP7.0后遗弃”HTTP_RAW_POST_DATA”这个全局变量,所以没有这个值。
使用如下方式即可
file_get_content("php://input");
PS:
从官网信息来看,php://input是一个只读信息流,当请求方式是post的,并且enctype不等于”multipart/form-data”时,可以使用php://input来获取原始请求的数据。
php://input可以读取没有处理过的POST数据。
相较于$HTTP_RAW_POST_DATA而言,它给内存带来的压力较小,并且不需要特殊的php.ini设置。
php://input不能用于enctype=multipart/form-data
搜查资料,总结如下:
1,Coentent-Type仅在取值为application/x-www-data-urlencoded和multipart/form-data两种情况下,
PHP才会将http请求数据包中相应的数据填入全局变量$_POST
2,PHP不能识别的Content-Type类型的时候,会将http请求包中相应的数据填入变量$HTTP_RAW_POST_DATA
3, 只有Coentent-Type不为multipart/form-data的时候,PHP不会将http请求数据包中的相应数据填入php://input,
否则其它情况都会。填入的长度,由Coentent-Length指定。