php接收post的方式

php接收post的方式

这段时间在研究php的接口,利用jmeter模拟发送数据给php服务器,看php如何接收post传输过去的数据,遇到了几个问题,经过一番度娘之后终于有所理解,记录一下:

这里记录常用的两种post方式

第一种:

content-type为application/x-www-form-urlencoded,这是post默认的数据格式,在使用jquery的ajax来post数据的时候默认就是这种方式,这种方式传输的数据形式为:username=admin&password=123456,在服务器接收的时候就是使用最常用的$_POST方式,获取username则采用$_POST[‘username’]即可正常获取。

第二种:

这种方式研究了好半天才发现怎么接收和处理其中的数据,content-type为application/json,在php中是无法直接对application/json的数据格式用$_POST方式接收的。application/json格式的数据类型为:

{

“username”:”admin”,

“password”:”123455″

}

对于这种post给服务器的数据类型,在php中需要通过‘php://input’原生接收数据类型(post传输过去的数据方式),然后再用json_encode解析,之后才能操作,php代码为:

$raw_post_data = file_get_contents('php://input');
$arr = json_decode($raw_post_data,true);
echo $arr['username'];

至此,才可以获取 application/x-www-form-urlencoded格式数据一样,通过$_POST[‘username’]获取到application/json数据的格式。

其他两种post的方式,抽空在研究,记录一下研究成果,方便后续使用。


————————————————
版权声明:本文为CSDN博主「蜗牛快走」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sunshinelyc/article/details/50921011

您可能还喜欢...

发表回复