【发布时间】:2011-10-04 15:00:43
【问题描述】:
我正在使用 PHP 调用 REST 服务从 eXist XML 数据库中检索信息,在 localhost 上运行,使用 file_get_contents() 捕获结果,并使用这些结果填充查询表单中的下拉列表.我认为file_get_contents() 应该自动等待完整的结果,但显然它没有;有时列表已完全填充,有时会被截断。截断发生在不同的位置,并且重新加载页面(重新运行 PHP,因此重新运行 REST 调用)通常会修复它,尽管有时不是第一次尝试。
如果我通过file_get_contents() 不等待结果来正确诊断问题,谁能告诉我如何解决它?还是有其他解释?这是来自 PHP 的相关 sn-p:
谢谢,
大卫
【问题讨论】:
-
file_get_contents 确实等待响应。如果它快速返回,那是因为请求的资源很快完成或某些原因导致连接提前结束。
-
不是它返回的很快,而是我没有得到完整的结果,即返回(有时)被截断。如果我误诊了问题(当然有可能!),我还能在哪里寻找解释?
-
使用能够提供更好诊断的工具,例如 curl。 file_get_contents 有点单一,很难调试。但简而言之,如果它返回的数据被截断,那是因为发送它的任何东西或网络都会导致截断。
-
谢谢。当我直接与 eXist 交谈时,我得到了完整的结果,而不是通过 PHP,所以我排除了 REST 调用本身是问题的根源。我去那里看看。问题是间歇性的(虽然很频繁,但有时我得到完整的结果,有时我没有,而且截断可能发生在不同的地方),并且因为我无法复制它,所以我在测试时遇到了麻烦。叹息。