Ни cURL, ни file_get_contents не могут загружать определенные веб-страницы - PullRequest
0 голосов
/ 11 мая 2019

Я использую веб-сервер IIS 8 / PHP и пытаюсь написать так называемый «прокси-скрипт» в качестве средства извлечения содержимого HTTP и загрузки его на страницу HTTPS.

Несмотря на то, что скрипт в некоторых случаях успешно работает (выводит все, что отправляет HTTP-страница) - например, Google.com, Amazon.com и т. Д. - он не работает при извлечении моего собственного веб-сайта и некоторых других.

Вот код proxy.php:

<?php
$url = $_GET['url'];

echo "FETCHING URL<br/>";      // displays this no matter what URL I enter 
$ctx_array = array('http' =>
    array(
        'method' => 'GET',
        'timeout' => 10,
    )
);
$ctx = stream_context_create($ctx_array);
$output = file_get_contents($url, false, $output);  // times out for certain requests
echo $output;

Когда я устанавливаю $_GET['url'] в http://www.ucomc.net, сценарий завершается ошибкой. С большинством других URL-адресов работает нормально.

Я проверил другие ответы здесь и в других местах, но ни один из них не описывает мою проблему, и предлагаемые решения не решают ее.

Я видел несколько предложений по аналогичным проблемам, которые связаны с изменением пользовательского агента, но когда я делаю это, он не только не решает существующую проблему, но и предотвращает загрузку других сайтов. Я не хочу полагаться на сторонние прокси (не доверяю свободным / хочу иметь дело с их лимитом запросов и не хочу платить за дорогие)

1 Ответ

0 голосов
/ 11 мая 2019

Оказывается, это была просто проблема с брандмауэром.Тестирование в изолированной программной среде PHP работало нормально, поэтому мне просто пришлось изменить параметры исходящих соединений в брандмауэре сервера, чтобы запрос проходил.

...