如何使用POST方法从android接收json对象

时间:2015-02-28 07:50:39

标签: php android

我正在开发一个php脚本,它使用POST方法接收android以json格式发送的数据。 但我没有得到任何数据,这是我的代码

$josn = file_get_contents("php://input");   
$json_data = json_decode($josn, true);   

我刚尝试按

打印$ json_data
print_r($json_data);   

但它没有显示任何值

1 个答案:

答案 0 :(得分:0)

var_dump()print_r()

更可靠

无论数据是否已损坏,它都会告诉您有关您想要查看的内容的“信息”。

如果 null ,则会显示“ null ”。

如果是' bob ',它会说(字符串3)'bob'

如果 4 ,则会说(int)4

如果是' 4 ',它会说(字符串1)'4'

此外,如果输入无效json,您的json_decode()可能会中断。查看您是否获得任何数据的更安全的方法是在将数据传递到json_decode()函数之前转储并检查数据:

var_dump( file_get_contents("php://input") );

如果您看到有效的json,那么将 $ josn 变量传递到json_decode()函数是安全的。

加成

似乎很愚蠢,但值得一提的是,您只能在输入缓冲区上使用file_get_contents()一次,然后内容就会消失。如果您尝试再次阅读它们,它们将为空。首次阅读时,请参阅存储它们的变量。

Separetely

另一个人提到检查你的全局$ _POST []变量......这带来了一个很好的观点。集管!

对于file_get_contents('php://input')的json拾取,php需要你的Android应用程序发送标题:

header('Content-Type: application/json');

对于$_POST[]的POST变量拾取,php需要你的Android应用程序发送标题:

header('Content-Type: application/x-www-form-urlencoded');

OR

header('Content-Type: multipart/form-data');