2014-09-29 85 views
0

我想从PHP的Web服务发送JSON对象到我的Android应用程序。最初为了检查我的PHP文件是否返回JSON值,我在浏览器中输入了url,并根据需要得到了正确的值。为了检查我的android代码,我使用正确的主机url执行了代码,但在logcat中只输出了'[]'作为输出。为了调试目的,我在hosthinger.com上创建了一个免费的虚拟主机和数据库。这一次完全相同的PHP和Android代码工作正常,给我所需的输出。事情我们做了,以确保没有错误列表:有没有任何PHP配置将JSON对象传递给android?

  1. 经过数据库的排序规则在两个hostings(utf8_unicode_ci)
  2. 无论是托管在返回浏览器正确的值。

是否有任何特定的PHP配置JSON对象?或者我错过任何标题信息? 我不明白为什么代码在一个主机中完美工作,而不是其他的

这是我的PHP代码:

<?php 
include ('mysqlconnection.php'); 
$mobile = $_POST['mobile_number']; 
$output = array(); 
$query="select name,status from content;"; 
$sql = mysql_query($query); 
while($row = mysql_fetch_assoc($sql)) { 
    $output[]= array('imagename' => $row['name'], 'status' => $row['status']); 
} 
echo json_encode($output); 
?> 
+0

检查您的数据库连接。你的代码看起来正确。 – 2014-09-29 07:59:47

回答

0

可能是你需要在你的PHP指定content.type:

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

我已经尝试过了。上面给出的代码在hosthinger主机中完美工作,但不在我的服务器中。 – BTDW 2014-09-29 07:52:54

0
  • 您应该使用output bufferapplication/json头,而不是仅仅回应json_encode()输出。

  • 有些服务器倾向于在使用MySQL时发生错误,请检查配置。并且不要使用mysql_*函数,请使用PDO或至少mysqli

  • 您应该检查代码中是否存在可能的错误,检查连接,查询结果等,然后生成JSON以提供输出。

  • 确保您的服务器的error_reporting设置为0。有时候,服务器会打印出警告,通知和错误消息,这些消息会混淆输出。

+0

如果有任何错误或警告的可能性,我不应该在浏览器中获得正确的JSON值?对? – BTDW 2014-09-29 08:11:30

+0

有可能这个代码失败,浏览器上有正确的输出意味着它没有失败:)你是否在开发人员工具中检查了你的输出?也许浏览器不会告诉你一切。 – 2014-09-29 08:19:03

0

您可以使用Google Chrome的PostMan Extension查看Web服务的结果。它还显示输出为json解析。

相关问题