【问题标题】:Cannot validate JSON result无法验证 JSON 结果
【发布时间】:2016-06-22 07:33:16
【问题描述】:

我正在尝试在 android 应用程序中读取 JSON 值,为此,我制作了一个包含以下代码的 json_get_data.php 文件。我正在使用 WAMP 服务器来托管我的文件。

<?php 
$link = mysqli_connect('localhost', 'root', '', 'lunch_menu') or die("could not connect");
$query="select * from lunch_menu";
$result=mysqli_query($link,$query);

$response = array();

while($row = mysqli_fetch_array($result)){
  array_push($response,array("id"=>$row[0],"day"=>$row[1],"soup"=>$row[2],"non_veg_main"=>$row[3],"non_veg_side"=>$row[4],"veg_main"=>$row[5],"veg_side"=>$row[6]));
}

echo json_encode(array("server_response"=>$response));

mysqli_close($link);
?>

结果的 URL 是http://192.168.1.100/json_get_data.php

但是,当我尝试使用 JSONlint 或其他验证器工具对其进行验证时,它会告诉我该 URL 无效,即使在浏览器中加载 URL 会正确输出 JSON 文件。

【问题讨论】:

  • 使用 POSTMAN 工具检查 API。它将向您显示 api 的正确结果。如果有任何问题,它也会告诉你。
  • 我不确定.. 我没有从您的网址收到任何回复。
  • 现在试试,我的 wifi 停止工作了。我将其更改为我的新 IP 地址。
  • 我尝试使用 POSTMAN 工具检查我的网址,但没有出现任何错误。它返回了我想要的结果。
  • 指定的 URL 包含本地的,无法从 Internet 访问:en.wikipedia.org/wiki/IP_address#Private_addresses

标签: php android json wamp


【解决方案1】:

本地主机是指运行代码的设备,在本例中是模拟器。

如果要引用运行 Android 模拟器的计算机,请改用 IP 地址 10.0.2.2。

【讨论】:

  • 目前在 android 上没有运行任何东西(我应该删除 android 部分),但我只是想验证来自 php 文件的响应。
【解决方案2】:

我在这里看不到内容类型的标题,在回显之前,您应该添加如下内容: header('Content-Type: application/json; charset=utf8');

也因为你的 ip 是本地的,JSONLint 不会看到它。如果您知道什么是 vagrant,您可以使用 vagrant share 或将此文件上传到真实的网络服务器(您可以获得 amazon 免费套餐)。

但如果您的目标只是测试您的输出,您可以使用 postman chrome 扩展程序或类似的工具。

【讨论】:

    猜你喜欢
    • 2017-09-01
    • 1970-01-01
    • 2020-07-31
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多