Я использую этот класс , чтобы сделать один GET и другой POST-запрос к веб-сайту (первый запрос - установить cookie).Я тестирую на виртуальной машине Win XP с virtualbox, используя wamp от wampserver dot com.2 запроса занимают от 10 до 18 секунд (с помощью curl), но если я сделаю этот запрос напрямую через веб-браузер на той же виртуальной машине, веб-сайт загрузится всего за несколько секунд, и он получит все изображения, CSS и т. Д.
Что может заставить локон работать так медленно?есть ли способ это исправить?
Curl, вероятно, пытается перевернуть DNS сервер и, поскольку он не может, он просто там немного висит в ожидании тайм-аута.
Если тайм-аут задан IPV6, вы можете попробовать CURL_IPRESOLVE_V4, чтобы вообще обойти его. Это действительно зависит от конфигурации вашего компьютера и больше относится к отказу сервера.
CURL_IPRESOLVE_V4
Я столкнулся с той же проблемой, используя команду curl.
, как предложено выше - исправление принудительного поиска ipv4 only dns.
curl -4 $url # красиво и быстро
curl -4 $url
(в моем файле hosts уже было ::1 localhost, но это не помогло).
::1 localhost
Проверьте журналы вашего веб-сервера и попытайтесь найти разницу между запросами от обычного веб-браузера и запросами от curl
Вероятно, это связано с IPv6.
Попробуйте добавить
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
Я столкнулся с этой проблемой с локальным веб-сервером.Мне удалось исправить, добавив
в /etc/hosts/ файл.
/etc/hosts/
Это нотация ipv6 для 127.0.0.1