是否有任何用于将 JSON 对象传递给 android 的 PHP 配置?

Posted

技术标签:

【中文标题】是否有任何用于将 JSON 对象传递给 android 的 PHP 配置?【英文标题】:Is there any PHP configuration for passing JSON object to android? 【发布时间】:2014-11-23 13:16:21 【问题描述】:

我正在尝试将 JSON 对象从 php Web 服务发送到我的 android 应用程序。最初为了检查我的 PHP 文件是否返回 JSON 值,我在浏览器中输入了 url 并获得了所需的正确值。为了检查我的 android 代码,我使用正确的主机 url 执行了代码,但在 logcat 中只得到了“[]”作为输出。出于调试目的,我在 hosthinger.com 中创建了一个免费的网络托管和数据库。这次完全相同的 php 和 android 代码运行良好,给了我想要的输出。我们为确保没有错误所做的事情清单:

    检查了两个主机中数据库的排序规则 (utf8_unicode_ci) 两个主机都在浏览器中返回了正确的值。

JSON 对象是否有任何特定的 PHP 配置?还是我缺少任何标题信息? 我不明白为什么代码在一个主机上运行良好,而在另一个主机上却不行

这是我的 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);
?>

【问题讨论】:

检查您的数据库连接。您的代码似乎正确。 【参考方案1】:

可能你需要在你的 php 中指定 content.type:

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

【讨论】:

我已经尝试过了。上面给出的代码在 hosthinger 托管中完美运行,但在我的服务器中却不行。【参考方案2】:

您应该使用带有application/json 标头的output buffer,而不是仅仅回显json_encode() 输出。

当您使用 MySQL 时,某些服务器往往会出错,请检查配置。并且不要使用mysql_* 函数,而是使用PDO 或至少mysqli。

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

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

【讨论】:

如果有任何错误或警告的可能性,我不应该在浏览器中得到正确的 JSON 值吗?对吗? 这段代码有可能会失败,在浏览器上有正确的输出意味着它还没有失败:) 你在开发者工具中检查过你的输出吗?也许浏览器并没有向您显示所有内容。【参考方案3】:

您可以使用 Google Chrome 的 PostMan 扩展程序来查看您的网络服务的结果。它还将输出显示为 json 解析。

【讨论】:

以上是关于是否有任何用于将 JSON 对象传递给 android 的 PHP 配置?的主要内容,如果未能解决你的问题,请参考以下文章

将 Django 对象传递给 ExtJS 的正确方法

将 Json 复杂对象传递给 HttpPost 调用

Python - 将 JSON 对象传递给函数时附加到 JSON 对象的附加“成员”

Javascript ajax 将动态创建的 json 对象传递给 Web 服务

通过jquery ajax将json对象传递给webmethod

如何将 json 对象传递给 mvc 控制器