Как проверить время ожидания запроса API с помощью Curl?

У меня есть сценарий. Здесь я использую Curl для доступа к API.
Если API недоступен, я должен отправить уведомление по электронной почте. Так как я могу проверить, есть ли время ожидания запроса?

Вот мой код

    $alerthttp1 = array();
$string = 'somestring';
$key = md5($string);
$service_url = 'www.someurl.com/'.$key;

$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 300);
$curl_response = curl_exec($curl);
$curl_errno = curl_errno($curl);
$curl_error = curl_error($curl);

error_log(json_encode($curl_errno));
error_log(json_encode($curl_error));

if(curl_error($curl) || $curl_response === false || $curl_errno > 0)
{
$info = curl_getinfo($curl);
hlog_errorlog('error occured during curl exec - ' . var_export($info));
hlog_errorlog('error -----------> '. $curl_error);
curl_close($curl);

$alerthttp1[] = array('status' => 'FAILED');//for email alert
}

Пожалуйста, предложите мне лучший способ кодирования.

Спасибо

2

Решение

Попробуйте использовать CURLOPT_CONNECTTIMEOUT вместо CURLOPT_TIMEOUT
CURLOPT_CONNECTTIMEOUT — это максимальное количество времени в секундах, которое разрешено устанавливать для подключения к серверу.

2

Другие решения

Нет, вы не можете знать это с CURL. Обратитесь в службу поддержки API. Или выберите время ожидания самостоятельно. Обычно это 30 секунд.

0