Возврат ответа при таймауте курла

303
22 января 2017, 17:35

Отправляю аяксом запрос курлом и задал таймаут 10 сек. Есть ли какой то параметр который возвращает какой то ответ при таймауте? Так как я не могу этот таймаут отловить,запрос возвращает пустой ответ.

Answer 1

CURLOPT_CONNECTTIMEOUT - Число в секундах ждать перед подключением. 0 для без конечного подключения.

CURLOPT_TIMEOUT - Сколько времени cURL будет бежать в секундах

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0); 
curl_setopt($ch, CURLOPT_TIMEOUT, 400); //timeout in seconds

Решения для ловли тайм-оут

<?php
if (!isset($_GET['foo'])) {
        // Client
        $ch = curl_init('http://localhost/test/test_timeout.php?foo=bar');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_NOSIGNAL, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT_MS, 200);
        $data = curl_exec($ch);
        $curl_errno = curl_errno($ch);
        $curl_error = curl_error($ch);
        curl_close($ch);
        if ($curl_errno > 0) {
                echo "cURL Error ($curl_errno): $curl_error\n";
        } else {
                echo "Data received: $data\n";
        }
} else {
        // Server
        sleep(10);
        echo "Done.";
}
?>
READ ALSO
Защита от частых запросов к странице

Защита от частых запросов к странице

Доброго времени сутокЕсть сайт, который работает по принципу file_get_contents

316
Подтянуть несколько таблиц на страницу

Подтянуть несколько таблиц на страницу

ЗдравствуйтеЕсть страница заказа, и на неё должны подтягиваться данные с нескольких таблиц БД

313
Как настроить форму обратной связи на сайте?

Как настроить форму обратной связи на сайте?

Сайт на хостинге с cPanelПочта используется с помощью biz

293