我正在使用这个类来向网站发送GET和POST请求(第一个请求是为了设置cookie)。我在使用wampserver dot com提供的wamp时,在Win XP虚拟机中进行测试。使用curl进行2次请求需要10至18秒,但如果我直接通过同一虚拟机中的Web浏览器进行请求,则网站会在几秒钟内加载,并检索所有图像、CSS等。
curl为什么如此缓慢?有没有办法解决它?
curl为什么如此缓慢?有没有办法解决它?
我遇到了同样的问题,使用curl命令。
如上所述-强制使用ipv4 DNS查找解决了它。
curl -4 $url
# 快速且流畅
(我已经在我的hosts文件中添加了::1 localhost
,但这并没有帮助)。
Curl可能会尝试反向解析服务器,但由于无法解析,它会在那里等待一段时间,直到超时。
如果IPv6造成了超时问题,您可以尝试使用CURL_IPRESOLVE_V4
来完全绕过它。这实际上取决于您的机器配置,更多是针对Server Fault的问题。
hosts
文件中输入地址,或尝试强制使用 IPv4 看看是否有任何区别。 - Frankie检查您的Web服务器日志,并尝试查找正常Web浏览器请求和curl请求之间的任何差异。
这可能是由于IPv6的原因。
尝试添加
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );