【发布时间】:2019-07-13 19:49:55
【问题描述】:
我已经尝试过多次使用“echo”方法打印字符串,但是当字符串变得太大时,它似乎会抛出 502 Bad Gateway?
我正在使用 PhpStorm 的内置网络服务器。
有人知道如何解决此问题或可以提供解决方法吗?
我尝试过使用多个字符串,但显然只有较短的字符串会给我 200 响应。
服务器在下面的示例中抛出 502,但如果我删除部分 "\"maths\" ..... 右括号或其他任何东西以使其更短,它会返回 200。这包括非JSON 字符串也是如此。
<?php
header("Content-Type:application/json");
echo "{
\"quiz\": {
\"sport\": {
\"q1\": {
\"question\": \"Which one is correct team name in NBA?\",
\"options\": [
\"New York Bulls\",
\"Los Angeles Kings\",
\"Golden State Warriros\",
\"Huston Rocket\"
],
\"answer\": \"Huston Rocket\"
}
},
\"maths\": {
\"q1\": {
\"question\": \"5 + 7 = ?\",
\"options\": [
\"10\",
\"11\",
\"12\",
\"13\"
],
\"answer\": \"12\"
},
\"q2\": {
\"question\": \"12 - 8 = ?\",
\"options\": [
\"1\",
\"2\",
\"3\",
\"4\"
],
\"answer\": \"4\"
}
}
}
}";
我找不到任何错误日志。当字符串太大时,唯一显示的是 502 Bad Gateway。
【问题讨论】:
-
把这些行放在你的脚本上面
error_reporting(E_ALL); ini_set('display_errors', 1);也许你的错误默认在你的php版本上被禁用 -
@MAZux 感谢您的快速回复。我确实启用了错误,并且我还尝试了上面的脚本以确保它,但回显代码不会引发任何错误。
-
您可能没有返回有效的 JSON。尝试删除标题,看看它是否打印正确。
-
@user1309690 根据我尝试过的每个 json 验证器,json 都是有效的,但我确实尝试删除标题,但最终得到了相同的结果。同样如前所述,它也发生在非 json 字符串中。
-
我可以复制它。请注意,这是 PhpStorm 的内置 Web 服务器(用 Java 编写,仅适用于静态资产)和 PHP 的内置 Web 服务器(用 PHP 编写,仅适用于 PHP 代码)之间的通信问题,恕我直言,很可能是 PhpStorm 中的一个错误。 IDE 日志(“帮助/在资源管理器中显示日志”)是否显示与您相关的内容?我得到“java.lang.IllegalArgumentException: minimumReadableBytes: -1003 (expected: >= 0)”,这对我来说没什么意义。