在PHP中获取POST数据

在PHP中获取POST数据,php,android,api,post,http-post,Php,Android,Api,Post,Http Post,所以我运行这个来检索我的帖子数据: $jsonString = file_get_contents('php://input'); 如果我打印出$jsonString,结果如下: Something=Value&OtherThing=Value&Etc=Yougetmydrift 现在在过去,我能够做到这一点: $object = json_decode($jsonString); $something = $object->Something; echo $something; //

所以我运行这个来检索我的帖子数据:

$jsonString = file_get_contents('php://input');
如果我打印出
$jsonString
,结果如下:

Something=Value&OtherThing=Value&Etc=Yougetmydrift

现在在过去,我能够做到这一点:

$object = json_decode($jsonString);
$something = $object->Something;
echo $something; // would print 'Value'

但我现在觉得这不管用。我正在使用Android SDK和
php://input
后端似乎什么也没有返回。有人知道这是为什么吗?

使用:
urldecode
/
urldecode
,而不是
json\u decode

使用:
urldecode
/
urldecode
,而不是
json\u decode

,我想你只是想要:

echo $_POST["Something"];
我想你只是想:

echo $_POST["Something"];

您不需要执行
文件获取内容('php://input');。PHP自动用POST数据填充变量
$\u POST

echo $_POST['Something']; // Value

另外,仅供参考:
Something=Value&OtherThing=Value&Etc=Yougetmydrift
不是JSON,而是一个查询字符串。如果你真的想解析它,你应该使用
parse\u str($string,$result)

你不需要做
file\u get\u contents('php://input');。PHP自动用POST数据填充变量
$\u POST

echo $_POST['Something']; // Value


另外,仅供参考:
Something=Value&OtherThing=Value&Etc=Yougetmydrift
不是JSON,而是一个查询字符串。如果你真的想解析它,你应该使用
parse\u str($string,$result)

文件获取内容('php://input');样式通常用于PUT数据。For POST PHP提供了一个内置的超级全局数组,名为$\u POST。

文件获取内容('php://input');样式通常用于PUT数据。For POST PHP提供了一个内置的超级全局数组,名为$\u POST。

我根本没有使用Android,但我很好奇-为什么你不使用$\u POST来检索POST数据?它不起作用或者有其他原因吗?Post数据应该可以从$\u Post访问。另外,您尝试解析为JSON的数据没有格式化为JSON。是的,我不知道为什么我没有先尝试:/Thanks我根本没有与Android一起工作过,但我很好奇-为什么您不使用$\u POST来检索POST数据?它不起作用或者有其他原因吗?Post数据应该可以从$\u Post访问。另外,您试图解析为JSON的数据也没有格式化为JSON。是的,我不知道为什么我没有先尝试:/Thanksurldecode只是从url字符串转换
%#
实体。它不会将url字符串转换为数组/对象;不幸的是,解析url也不起作用。如果您像问题中那样向它传递一个简单的查询字符串,您将返回
null
。即使您向其传递完整的url,它也不会将查询解析为数组/对象,而只返回一个由查询部分组成的字符串。实际上,您不需要。手动编写:D按=,将数组键分配为数组值,并将其返回/转换为对象:)problem SolveDurldCode仅从url字符串转换
%##
实体。它不会将url字符串转换为数组/对象;不幸的是,解析url也不起作用。如果您像问题中那样向它传递一个简单的查询字符串,您将返回
null
。即使你给它传递一个完整的url,它也不会将查询解析为数组/对象,只会返回一个由查询部分组成的字符串。实际上你不需要。手动编写:D按=,将其拆分,将数组键分配为数组值,并将其返回/转换为对象:)问题解决a我知道它不是JSON。我想那是因为我没有把它作为JSON发送出去。。。将不得不看看如何从android编码为JSON…很好的调用tho。我正在使用其他人编写的API,试图将其移植到另一个设备。我想我需要用JSON对android代码进行编码,使其与API一起工作。否则就全部重写@ing0:您不需要将其作为JSON发送出去,使用
$\u POST['Something']
就可以了。不,我确实需要将其作为JSON发送出去。API已经是这样写的了!我所要改变的就是我对POST数据的编码方式。但我知道在大多数情况下,使用$u POST将是理想的解决方案。我想我忘了提到这一点!至少我让它工作了。如果我有时间,我会改变它,但它的工作原理是一样的。再次感谢是的,我知道那不是JSON。我想那是因为我没有把它作为JSON发送出去。。。将不得不看看如何从android编码为JSON…很好的调用tho。我正在使用其他人编写的API,试图将其移植到另一个设备。我想我需要用JSON对android代码进行编码,使其与API一起工作。否则就全部重写@ing0:您不需要将其作为JSON发送出去,使用
$\u POST['Something']
就可以了。不,我确实需要将其作为JSON发送出去。API已经是这样写的了!我所要改变的就是我对POST数据的编码方式。但我知道在大多数情况下,使用$u POST将是理想的解决方案。我想我忘了提到这一点!至少我让它工作了。如果我有时间,我会改变它,但它的工作原理是一样的。再次感谢