【问题标题】:PHP cURL takes too long to loadPHP cURL 加载时间过长
【发布时间】:2023-03-10 01:05:01
【问题描述】:

我对来自实时服务器的 cURL 请求有疑问。我已经看到了这个url,但没有得到那个解决方案。

尝试请求本地 URL,而不是花费 562 毫秒。

但相同的代码需要 1.1 分钟的实时 URL。

以下是curl_getinfo($cSession) 的详细信息:

Array
(
    [url] => http://***.***.**.**
    [content_type] => 
    [http_code] => 0
    [header_size] => 0
    [request_size] => 0
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 62.261039
    [namelookup_time] => 0.000148
    [connect_time] => 0
    [pretransfer_time] => 0
    [size_upload] => 0
    [size_download] => 0
    [speed_download] => 0
    [speed_upload] => 0
    [download_content_length] => -1
    [upload_content_length] => -1
    [starttransfer_time] => 0
    [redirect_time] => 0
    [certinfo] => Array
        (
        )

    [primary_ip] => 
    [primary_port] => 0
    [local_ip] => 
    [local_port] => 0
    [redirect_url] => 
)

下面我正在使用代码:

$cSession = curl_init();
//step2

curl_setopt($cSession, CURLOPT_URL,"$url");
curl_setopt($cSession, CURLOPT_RETURNTRANSFER, true);
// curl_setopt($cSession, CURLOPT_HEADER, false);
curl_setopt($cSession, CURLOPT_ENCODING, 'gzip');

//step3
$result=curl_exec($cSession);
$cinfo = curl_getinfo($cSession);

//step4
curl_close($cSession);

//step5, result of curl
// echo $result;

print_r($cinfo);

谁能帮帮我,我失败了。

【问题讨论】:

  • 一般来说,你不应该强制gzip。首先,如果 curl 未在启用 gzip 的情况下编译,并且服务器选择使用 gzip,您将获得损坏的下载。其次,如果以后curl内置了更好的算法,就不会使用了,如果服务器支持DEFLATE但不支持gzip(通常内置DEFLATE),你的下载会比较慢。只需给 CURLOPT_ENCODING 一个空字符串,curl 将列出所有支持的编码,服务器将选择它认为最适合的编码。仅在您不同意服务器的边缘情况优化场景中,您可能需要强制 gzip

标签: php curl request


【解决方案1】:

代替

curl_setopt($cSession, CURLOPT_ENCODING, 'gzip');

尝试使用

curl_setopt($cSession, CURLOPT_ENCODING, '');

【讨论】:

    猜你喜欢
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    相关资源
    最近更新 更多