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;
}
