我正在使用this class向网站发出一个GET和另一个POST请求(第一个请求是设置cookie)。我正在使用wampserver dot com的wamp在带有virtualbox的Win XP虚拟机中进行测试。 2个请求需要10到18秒(有卷曲),但是如果我直接通过同一个虚拟机中的webbrowser发出这些请求,网站只需几秒钟即可加载,并且它会检索所有图像,css等。 / p>
什么可能导致卷曲工作这么慢?有没有办法解决它?
答案 0 :(得分:3)
Curl可能正在尝试将服务器反向DNS,并且因为它不能挂起那里等待超时。
如果超时是由IPV6给出的,您可以尝试CURL_IPRESOLVE_V4
完全绕过它。这实际上取决于您的机器配置,而且更像是服务器故障。
答案 1 :(得分:2)
检查您的网络服务器日志,并尝试查找来自普通网络浏览器的请求与来自curl的请求之间的任何差异
答案 2 :(得分:2)
我使用curl命令遇到了同样的问题。
如上所述 - 强制ipv4只有dns查找修复它。
curl -4 $url
#nice and fast
(我的主机文件中已经有::1 localhost
- 但这没有帮助。)
答案 3 :(得分:1)
可能是由于IPv6。
尝试添加
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
答案 4 :(得分:0)