使用PHP进行CURL - 非常慢

Jak*_*ake 9 php curl libcurl

所有,

我必须请求一个返回JSON请求的URL.我正在使用PHP和CURL来做到这一点.目前,请求和响应大约需要3-4秒.

以下是卷曲代码

    $ch = curl_init();
    $devnull = fopen('/tmp/curlcookie.txt', 'w');

    curl_setopt($ch, CURLOPT_STDERR, $devnull);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_URL, $desturl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);

    $ret = curl_exec($ch);

    curl_close($ch);

    if ($devnull)
    {
        fclose($devnull);
    }
Run Code Online (Sandbox Code Playgroud)

以下是CURL_GETINFO数组

Array
(
    [url] => https://xx.xx.xxx.xx/portalsite/tester
    [content_type] => application/json
    [http_code] => 200
    [header_size] => 198
    [request_size] => 835
    [filetime] => -1
    [ssl_verify_result] => 20
    [redirect_count] => 0
    [total_time] => 2.054561
    [namelookup_time] => 6.5E-5
    [connect_time] => 0.016048
    [pretransfer_time] => 0.123947
    [size_upload] => 699
    [size_download] => 46735
    [speed_download] => 22746
    [speed_upload] => 340
    [download_content_length] => 0
    [upload_content_length] => 0
    [starttransfer_time] => 1.743973
    [redirect_time] => 0
)
Run Code Online (Sandbox Code Playgroud)

如何加快CURL处理时间?

谢谢

rap*_*2-h 6

根据这个答案(类似的问题),如果您使用的是 Mac OS X 并且您使用xxxx.local127.0.0.1 myproject.local在您的/etc/hosts/

正如@lepix 所说:

这是因为 .local tld 是为 Bonjour 服务保留的,这是从 Mac OS X Lion (10.7) 开始的。

希望它会有所帮助,感谢lepix。


jsp*_*cal 4

看起来大部分时间都在等待服务器响应(starttransfer_time - pretransfer_time = 1.620026)...也许服务器正在执行某些数据库或其他需要时间的操作?

  • 我猜测主机名已被缓存(查找需要 65 微秒) (2认同)