代码之家  ›  专栏  ›  技术社区  ›  Greg

为什么curl会忽略curlopt_timeout_ms(但要遵守curlopt_timeout)?

  •  4
  • Greg  · 技术社区  · 15 年前

    我正在使用curl调用Web服务API。服务可能没有响应,所以我想设置一个超时。当我使用curlopt_超时时,事情按预期工作。但是,当我使用curlopt_timeout_ms(注意毫秒数的“ms”)时,超时看起来根本没有启动。php.net告诉我,后者是从php 5.2.3版本开始提供的,我使用的是5.2.6。

    你知道为什么会这样吗?

    谢谢。

    代码片段:

    $c = curl_init();
    curl_setopt( $c, CURLOPT_URL, $call );
    curl_setopt( $c, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt( $c, CURLOPT_HEADER, false );
    curl_setopt( $c, CURLOPT_RETURNTRANSFER, true );
    curl_setopt( $c, CURLOPT_TIMEOUT_MS, 100 ); 
    curl_setopt( $c, CURLOPT_CONNECTIONTIMEOUT_MS, 100 ); 
    $result = curl_exec($c);
    curl_close($c);
    
    1 回复  |  直到 15 年前
        1
  •  7
  •   Greg    15 年前

    要结束此问题:

    我使用的curl版本(7.15.5)不支持curlopt超时。根据greg的说法,我至少需要7.16.2。