【问题标题】:Very slow curl compared to browser与浏览器相比,卷曲速度非常慢
【发布时间】:2013-12-17 09:24:38
【问题描述】:

这个简单的代码可能是什么原因:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://somepage.com/path');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERIFYPEER, false);
$output = curl_exec($ch);

始终比 Firefox 慢 1 秒以上?

我已经使用

测试了 PHP 代码
$timestart = microtime(true);
echo microtime(true) - $timestart;

和 Firefox 上的 Firebug(网络标签)。

https://somepage.com/path 返回纯 JSON,在 Firefox 上大约需要 500 毫秒,在 PHP 中使用 cURL 大约需要 1500 毫秒。

【问题讨论】:

  • 你确认firefox没有缓存页面吗?
  • @lumbendil 是的,我做到了,除了每次刷新时页面都会改变。

标签: php curl


【解决方案1】:
Accept-Encoding gzip, deflate

Firefox 总是向远程站点请求压缩内容(如果可用)。我想在您的情况下,该站点是通过浏览器返回压缩的 html 的。但是在使用 curl 获取 html 时,您没有在代码中设置任何类似的内容。

尝试将此添加到您的 curl 代码中并再次检查性能。

curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate'); 

如果没有发现更改,请尝试以下一项。

curl_setopt($ch, CURLOPT_ENCODING, ""); // supports all

【讨论】:

    【解决方案2】:

    您可以尝试在 cURL 中发送 Firefox 的用户代理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多