我正在开发一个php脚本,它使用POST方法接收android以json格式发送的数据。 但我没有得到任何数据,这是我的代码
$josn = file_get_contents("php://input");
$json_data = json_decode($josn, true);
我刚尝试按
打印$ json_dataprint_r($json_data);
但它没有显示任何值
答案 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()
一次,然后内容就会消失。如果您尝试再次阅读它们,它们将为空。首次阅读时,请参阅存储它们的变量。
另一个人提到检查你的全局$ _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');