写api,接受post消息什么情况下用$_POST,什么情况下用php://input?

现在要写一个api接口,用的是post方法,其他公司给这api post发送json数据
但问题来了,我自己测试的时候,一开始接收数据是用$_POST接收,我模拟发送的时候,用php的curl模式post过来,一切正常
然后对方调用api的时候,说失败了,我一看,是接收的数据为空,我自己用Fiddler模拟post请求过来,也的确是空,$_POST接收不了数据,然后我改用php://input就能接收成功。可是,不知道为什么,用php://input的话,我php用curl模拟post过来,竟然接收不了!!!!
就是说
curl post =>> $_POST
其他正常的post =>> php://input
这是什么情况,我百度了一下

clipboard.png
也没看出个所以然

阅读 3.5k
1 个回答

多看文档

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

http://php.net/manual/zh/rese...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题