从不同服务器调用时,file_get_contents返回不同的结果

时间:2014-02-28 23:13:28

标签: php file-get-contents

我正在运行一段简单的PHP代码,如下所示:

echo file_get_contents( 'http://example.com/service?params' );

当我在本地计算机上(在工作中)或从我的共享主机帐户运行代码时,或者如果我只是在浏览器中打开URL,我会得到以下结果:

{"instances":[{"timestamp":"2014-02-28 18:03:39.0","ids":[{"id":"525125875"}],"cId":179,"cInstanceId":9264183220}]}

但是,当我在工作场所的两个不同网络服务器中运行完全相同的代码时,我得到以下略有不同的结果:

{"instances":[{"timestamp":"2014-02-28 18:03:39.0","ids":[{"id":"632572147"}],"cId":179,"cInstanceId":4302001980}]}

注意一些数字是如何不同的,这就是全部。不幸的是,这些不同的数字是错误的数字。结果应该与第一个相同。

我正在拨打电话的服务器位于我的工作场所之外。

我已经尝试改变file_get_contents调用以包含标头和伪装成浏览器,但似乎没有任何结果给出不同的结果(除了由于意外格式错误的请求而导致的错误)。我不能使用cURL,因为它没有安装在需要部署此代码的服务器上。

有什么可能导致不同结果的线索?也许请求标题中的某些内容?虽然我不确定为什么标题中的某些内容会导致服务返回不同的数据。

感谢。


(编辑)

我正在测试的服务网址是:

http://iswa.ccmc.gsfc.nasa.gov/IswaSystemWebApp/CygnetLastNInstancesServlet?lastN=1&cygnetId=179&endTimestamp=2014-02-28+21%3A35%3A48

它给出的反应与我上面发布的内容略有不同;我简化并简化了我的帖子中的回复,使其更容易阅读 - 但给出的基本信息和差异仍然是相同的。

我给服务一个时间戳,我想要获取的图像数量是在那个时间戳之前创建的,还有一个'cygnetId',它定义了我希望图像显示的数据类型(太阳风速度,辐射)皮带强度等)。 然后,该服务回复了我给它的一些信息,以及我请求的图像的URL段。

使用返回的数据,我可以构建图像的URL。 这是根据“正确”响应构建的图像的URL:

http://iswa.ccmc.gsfc.nasa.gov/IswaSystemWebApp/StreamByDataIdServlet?allDataId=525125875

以下是根据“错误”响应构建的图片的网址:

http://iswa.ccmc.gsfc.nasa.gov/IswaSystemWebApp/StreamByDataIdServlet?allDataId=632572147

如果点击上面的链接,您会看到“错误的”网址无法打开图片 - 回复为空白。

0 个答案:

没有答案