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

PHP CURL: Как сделать повторный curl, если получил 503-й код (см. внутри)?

Сервер при частых запросах отдает 503-й код.
Если повторить через 3 секунды - можно снова парсить.
Этот код выдает ошибку (текст ошибки под кодом):
function get_url($href) {
	    $curl = curl_init();
	    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
	    curl_setopt($curl, CURLOPT_HEADER, false);
	    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
	    curl_setopt($curl, CURLOPT_URL, $href);
	    curl_setopt($curl, CURLOPT_REFERER, $href);
	    curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
	    curl_setopt($curl, CURLOPT_USERAGENT, "my_useragent_string");
	    $str = curl_exec($curl);
	    $httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
	    if ($httpcode == '503') {
	    	curl_close($curl);
	    	sleep(4);
	    	$this->get_url($href);
	    }
	    curl_close($curl);
            return $str	
	}


Текст ошибки:
Message: curl_close(): 38 is not a valid cURL handle resource

Как грамотно оформить такую реализацию-обход частых запросов?
(смена useragent не помогает)
  • Вопрос задан
  • 630 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
BuriK666
@BuriK666
Компьютерный псих
Дык 403 или 503?

if ($httpcode == '503') {
      	curl_close($curl);
      	sleep(4);
      	$this->get_url($href);
      }
      curl_close($curl);
вы два раза делаете curl_close.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы