php://input 和 $_POST的区别

问题

当使用Curl POST数据时,传送application/json格式的数据,Server端使用$_POST无法正确接收

分析

php://input返回请求中header之后的所有原始数据,不受content-type的影响
$_POST包装器仅仅支持一下两种格式:

  • application/x-www-form-urlencoded (标准的表单POST)
  • application/form-data-encoded (多用于文件上传)

解决

当使用Curl传输json格式的数据时,Server端不应使用$_POST包装器来解析,而应该通过file_get_contents('php://input')来获取原始的数据流,自己处理

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容