出于某种原因,我的 curl 调用非常慢。这是我使用的代码。
$postData = "test"
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$result = curl_exec($ch);
执行此代码平均需要 250 毫秒才能完成。 然而,当我在浏览器中打开 url 时,firebug 说它只需要大约 80 毫秒。
我做错了什么吗?或者这是与 PHP Curl 相关的开销。
这是对
的调用curl_exec
这一直在占用时间。
更新:
所以我在发布这篇文章后立即发现,如果我设置 curl 选项
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
速度明显变慢
curl_exec
post 数据可以是任何东西,它会减慢它的速度。
即使我设置
curl_setopt($ch, CURLOPT_POST, false);
它很慢。
我将尝试通过将参数作为查询字符串添加到 URI 来解决这个问题。
第二次更新:
确认如果我只是使用 GET 调用 URI 并传递参数 作为查询字符串,它比使用 POST 并将参数放在正文中要快得多。
最佳答案
CURL 在 DNS 查找方面存在一些问题。尝试使用 IP 地址而不是域名。
关于PHP curl 缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9304645/