PHP / cURL проблема открытия удаленного файла - PullRequest
0 голосов
/ 10 февраля 2010

У нас есть скрипт, который извлекает XML с удаленного сервера. Если этот сценарий выполняется на любом сервере, кроме рабочего, он работает.

Загрузите его в производство, однако, и это не удастся. Он использует cURL для запроса, но не имеет значения, как мы это делаем - fopen, file_get_contents, сокеты - это просто время ожидания. Это также происходит, если я использую скрипт Python для запроса URL.

Один и тот же скрипт, снабженный другим URL-адресом для запроса, работает - каждый раз. Очевидно, что он не возвращает искомый XML, но возвращает НЕЧТО - он МОЖЕТ подключиться к удаленному серверу.

Если этот URL запрашивается через командную строку с использованием, например, curl или wget, данные снова возвращаются. Это не данные, которые мы ищем (на самом деле, это возвращает пустой корневой элемент), но что-то возвращается.

Интересно, что если мы уберем элементы строки запроса из URL-адреса (полный URL-адрес содержит 7 элементов строки запроса и всего содержит около 450 символов), сценарий вернет тот же пустой XML-ответ. Определенные комбинации строки запроса снова приведут к превышению времени ожидания сценария.

Это, как вы можете себе представить, совершенно сбило меня с толку - похоже, оно работает в любых обстоятельствах, КРОМЕ этого необходимо для работы. Мы можем получить ответ на наших серверах разработчиков, мы можем получить ответ в командной строке , мы можем получить ответ, если отбросим определенные элементы QS - мы просто не можем получить требуемый ответ с правильным URL на сервере LIVE.

У кого-нибудь есть предложения? Я в своем уме!

1 Ответ

1 голос
/ 10 февраля 2010

Запустите Wireshark и посмотрите, как далеко заходит запрос. Возможно, проблема с брандмауэром, проблема с разрешением DNS.

Кроме того, попробуйте увеличить тайм-аут завитка до чего-то намного более высокого, например, 300 с, и посмотрите, как оно происходит.

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