通过PHP请求文件失败,但在Python中成功


Requesting file via PHP fails, but succeeds in Python

有问题的URL:http://www.roblox.com/asset/?id=149996624

当在浏览器中访问时,它将正确下载文件(即XML文档)。我想在php中获取该文件,并简单地在页面上显示其内容。

$contents = file_get_contents("http://www.roblox.com/asset/?id=149996624");

以上是我尝试使用的内容(据我所知,该页面不需要任何标题)。我收到一个500 HTTP错误。但是,在Python中,以下代码可以工作,并且我收到了该文件。

r = requests.get("http://www.roblox.com/asset/?id=147781188")

我很困惑这两个请求是如何发送的。我几乎100%这不是一个头部问题。我也尝试过PHP中的cURL库,但没有成功。我在PHP中尝试过的URL(使用任何有效的id参数)似乎都没有成功;但Python却能毫不在意地带来成功。

任何关于为什么会发生这种问题的见解都将是非常好的。

EDIT:我已经尝试过将Python的头文件复制到我的PHP请求中。

EDIT2:在导航到链接时,似乎还发生了两个请求。

这是在linux/mac主机上偶然发生的吗?如果是这样的话,您可以使用ngrep在连线上查看请求本身的差异。下面这样的东西应该工作

ngrep -t '^(GET) ' 'src host 127.0.0.1 and tcp and dst port 80'

EDIT-问题是您的服务器正在响应一个302,而PHP库没有自动跟随它。干杯

相关文章: