当我尝试使用curl
或file_get_contents
从http://example.com/python/json/读取http://example.com/之类的内容时,我应该收到JSON响应,但我得到404错误。使用curl或我自己域外的任何其他方法都可以很好地工作。
echo file_get_contents('http://example.com/python/json/'); => 404
echo file_get_contents('http://google.com'); => OK
同样的脚本适用于我的笔记本电脑,但我无法弄清楚它的区别。
答案 0 :(得分:2)
看起来example.com不是IP地址的默认域,而file_get_contents使用HTTP / 1.0而不是HTTP / 1.1和/或不发送Host:头。请尝试使用PHP中的curl支持:
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://example.com/');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
或者,/ etc / hosts文件为example.com设置了错误的IP地址。
答案 1 :(得分:0)
与域名有关,也许?当然,你不想在这里透露它,所以你可能有一点要做,但我想完整性检查是你可以通过网络浏览器(或GET等命令行工具)访问该URL '仅限命令行。)
你也可以ping和/或traceroute到域 - 结果可能很有启发性。