Задать вопрос
@accountnujen

Как обработать ошибки curl php, если connect_time = 0?

У меня скрипт делает curl запрос. В параметрах я указал вот это:
curl_setopt_array($ch, [
CURLOPT_CONNECTTIMEOUT => 20, 
CURLOPT_TIMEOUT => 400, 
CURLOPT_RETURNTRANSFER => 1, 
CURLOPT_HTTPAUTH=>CURLAUTH_ANY]);

$b = curl_getinfo($ch);
if ($b['total_time'] > 399) {
  servicetg("Превышено время ожидания <code>total_time</code>. Время ожидания {$b['total_time']} секунд\nПопытка N$i");
} else 
if($b['connect_time'] > 19){
   servicetg("Превышено время подключения <code>connect_time</code>. Время ожидания {$b['connect_time']} секунд\nПопытка N$i");
} else
if ($http === 200) {
  return [$a,$b];
} else {
  servicetg("⚠⚠⚠\n<b>Критическая непредвиденная ошибка</b>\nКод состояния: $http\nВремя ожидания {$b['total_time']}\nПопытка N$i");
}

по моей логике должно было быть всё хорошо, однако, если хост недоступен, но мне выкинет исключение, потому что по какой-то причине connect_time будет равен 0 секунд.
[url] => http://....
[content_type] => 
[http_code] => 0
[header_size] => 0
[request_size] => 0
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 20.001279
[namelookup_time] => 0.0017
[connect_time] => 0
[pretransfer_time] => 0
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => -1
[upload_content_length] => -1
[starttransfer_time] => 0
[redirect_time] => 0
[redirect_url] => 
[primary_ip] => 
[certinfo] => Array
    (
    )

[primary_port] => 0
[local_ip] => 
[local_port] => 0
[http_version] => 0
[protocol] => 0
[ssl_verifyresult] => 0
[scheme] => 
[appconnect_time_us] => 0
[connect_time_us] => 0
[namelookup_time_us] => 1700
[pretransfer_time_us] => 0
[redirect_time_us] => 0
[starttransfer_time_us] => 0
[total_time_us] => 20001279


я, конечно, могу перестроить проверку, где будет
if 200
else if total_time > 399
else if total_time > 19 && http_code === 0
else

но кто-нибудь может объяснить, на кой тогда существует connect_time, если он всегда пустой?
  • Вопрос задан
  • 128 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
16 янв. 2025, в 07:26
1000 руб./в час
16 янв. 2025, в 04:52
1000 руб./за проект
16 янв. 2025, в 03:28
500 руб./за проект