PHP学习笔记之Post上传注意事项

        今天原本是想用Postman 模拟POST 上传一组Json 数据到服务器,结果发现上传的数据服务器始终接受不到。

服务器代码:

<?php
	echo "<pre>";
	var_dump($_POST);
	var_dump($_REQUEST);
	echo "</pre>";
?>

PostMan code:

POST /api.php/API/fish_woter_monitoring_add HTTP/1.1
Host: shrimp.cqjufy.com
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 356cd424-c710-2d33-ffa7-29157f939c56


{"SensorData": [{"equipment_ID": "20180418","PH_value": "7.28","oxygen_value": "5.03","temperature_value": "21.4"}]}

结果发现服务器始终接收不到数据。

百度后 各位大神们都是推荐使用 php://input 读取

file_get_contents('php://input')

另外还可以使用 $GLOBALS['HTTP_RAW_POST_DATA'] 获取POST 原生数据,不过官方建议用php://input 代替;

$GLOBALS['HTTP_RAW_POST_DATA']

三者的区别:

$_POST 、$HTTP_RAW_POST_DATA、php://input三者之间的区别

HTTP_RAW_POST_DATA 

1.需要设置 php.ini 中的 always_populate_raw_post_data 值为 On 才会生效

2.相比php://input 需要更多的内存

php://input

不能用于 enctype="multipart/form-data"

$_POST

1.无法解析如text/xml,application/json等非 application/x-www.form-urlencoded 数据类型的内容

2.经验证不能用于enctype="text/plain"   

3.当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencodedmultipart/form-data 时,会将变量以关联数组形式传入当前脚本。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值