CURLOPT_CONNECTTIMEOUT:这个选项用于设置连接超时时间,即从发起请求到服务器响应之间的最大等待时间。如果在设定的时间内没有建立连接,cURL操作会被中断并返回错误。这个时间是指尝试连接所花费的时间,不包括传输数据的时间。


CURLOPT_TIMEOUT:这个选项用于设置整个cURL操作的最大执行时间,包括连接时间和数据传输时间。如果整个操作没有在设定的时间内完成,cURL操作会被中断并返回错误。


    protected static function httpsRequest($url, $data = null, $time_out = 7)
    {
        $ch = curl_init();
        //设置url
        curl_setopt($ch, CURLOPT_URL, $url);
        //设置curl_exec方法的返回值,结果返回,不自动输出任何内容
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        //发送post请求
        if (!empty($data)) {
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
            curl_setopt($ch, CURLOPT_HTTPHEADER, [
                'Content-Type: application/json; charset=utf-8',
                'Content-Length: ' . strlen(json_encode($data))
            ]);
        }
        // 连接超时时间,尝试连接所花费的时间,不包括传输数据的时间
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
        // 超时时间,包括连接时间和数据传输时间
        curl_setopt($ch, CURLOPT_TIMEOUT, $time_out);

        //跳过ssl检查项
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        //发送请求
        $result['resData'] = curl_exec($ch);
        $result['resCode']=curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        return $result;
    }