博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于php接收http模拟post传json格式时$_POST为空的问题
阅读量:7112 次
发布时间:2019-06-28

本文共 700 字,大约阅读时间需要 2 分钟。

编写项目时需要将数据转换成json格式的字符串,并通过post传参传给后台,但在后台接收数据时发现$_POST参数为空

头部为:

curl_setopt($ci, CURLOPT_HEADER, 0);

 

curl_setopt($ci, CURLOPT_HTTPHEADER,array('Content-Type: application/json; charset=utf-8','Content-Length:' . strlen($tmpdatastr)));

针对这个问题在网上查询资料发现,仅在 Coentent-Type的值为application/x-www-data-urlencode和multipart/form-data时,php才会将http请求数据包中的数据填进$_POST中,其他类型的Coentent-Type,php不能识别,会将相应的数据填入变量$HTTP_RAW_POST_DATA中.

所以可以使用两种方法在这种情况下获取数据

1.通过$HTTP_RAW_POST_DATA获取

$post=$GLOBALS['HTTP_RAW_POST_DATA'];

但需要修改相应的php.ini指令

2.通过php://input获取(建议使用这种方法 php://input数据总是和$HTTP_RAW_POST_DATA相同,但php://input更凑效且不需要修改php.ini)

$post=file_get_contents("php://input");

 

转载于:https://www.cnblogs.com/wlgh01/p/8349569.html

你可能感兴趣的文章
微软改名部又出动啦!微软宣布VSTS改名为Azure DevOps
查看>>
SQL Server 通过备份文件初始化复制
查看>>
使用 Jackson 树连接线形状
查看>>
学习mysql代码的方法和目标
查看>>
【读后感】暗时间
查看>>
STL priority_queue<> 用法 <转>
查看>>
Unix/Linux 脚本中 “set -e” 的作用
查看>>
静观----冥想
查看>>
使用 IntraWeb (23) - 基本控件之 TIWTimer、TIWProgressBar、TIWProgressIndicator、TIWTimeEdit...
查看>>
mybatis-generator自动生成dao,mapping,model
查看>>
阿里云服务器的坑=====部署EF+MVC
查看>>
docker学习笔记17:Dockerfile 指令 ONBUILD介绍
查看>>
MVC5 网站开发之七 用户功能 1、角色的后台管理
查看>>
To Miss Our Children Time(dp)
查看>>
VisualSVN Server和Subversion的联系
查看>>
Gossip算法
查看>>
单调栈小结
查看>>
将Tp-link无线路由器桥接到Dlink无线路由器上
查看>>
Div和Span标签显示与隐藏
查看>>
highcharts 结合phantomjs纯后台生成图片
查看>>