Чтение файлов с собственного домена приводит к 404 - PullRequest
1 голос
/ 30 октября 2008

Когда я пытаюсь использовать 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

Тот же сценарий работает на моем ноутбуке, но я не могу понять, в чем разница.

Ответы [ 2 ]

2 голосов
/ 30 октября 2008

Похоже, 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 устанавливает неправильный IP-адрес для example.com.

0 голосов
/ 30 октября 2008

Может быть, что-то связано с доменом? Конечно, вы не хотите раскрывать это здесь, так что вам, возможно, придется кое-что сделать, но я думаю, что проверкой работоспособности было бы то, что вы можете получить доступ к этому URL через веб-браузер (или инструмент командной строки, такой как GET, если только для командной строки).

Вы также можете просто пропинговать и / или трассировать маршрут до домена - результаты могут быть очень полезными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...