Curl php время ожидания ответа

curl_setopt

TRUE для отмены индикатора прогресса при передачах cURL.

Замечание:

PHP автоматически устанавливает этот параметр в TRUE , меняйте его только для отладочных целей.

Замечание:

Эта опция устарела, так как никогда не была реализована в cURL и не работала.

Используемые HTTP методы авторизации. Используемые параметры: CURLAUTH_BASIC , CURLAUTH_DIGEST , CURLAUTH_GSSNEGOTIATE , CURLAUTH_NTLM , CURLAUTH_ANY , and CURLAUTH_ANYSAFE .

Можно использовать побитовый оператор | (или) для комбинации нескольких методов вместе. В этом случае cURL опросит сервер на предмет поддерживаемых методов авторизации и выберет лучший из них.

CURLAUTH_ANY — это псевдоним CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLAUTH_ANYSAFE — это псевдоним CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

Битовая маска из значений CURLPROTO_* . Данная маска ограничивает используемые libcurl протоколы. Это позволяет иметь libcurl, работающую с большим количеством протоколов, и ограничивать работу определенных передач только для некоторого их набора. По умолчанию, libcurl использует все поддерживаемые протоколы. Смотрите также параметр CURLOPT_REDIR_PROTOCOLS .

Корректные значения протоколов: CURLPROTO_HTTP , CURLPROTO_HTTPS , CURLPROTO_FTP , CURLPROTO_FTPS , CURLPROTO_SCP , CURLPROTO_SFTP , CURLPROTO_TELNET , CURLPROTO_LDAP , CURLPROTO_LDAPS , CURLPROTO_DICT , CURLPROTO_FILE , CURLPROTO_TFTP , CURLPROTO_ALL

Замечание:

Рекомендуется не устанавливать эту опцию и оставить значение по умолчанию. Установка в 2 или 3 опасно и допускает применение известных уязвимостей в SSLv2 и SSLv3.

Собственный метод запроса, используемый вместо «GET» или «HEAD» при выполнении HTTP-запроса. Это полезно при запросах «DELETE» или других, более редких HTTP-запросах. Корректными значениями будут слова наподобие «GET», «POST», «CONNECT» и так далее; т.е. не вводите здесь всю строку с HTTP-запросом. Например, указание «GET /index.html HTTP/1.0\r\n\r\n» будет неправильным.

Замечание:

Не используйте эту возможность пока не убедитесь, что сервер поддерживает данный тип запроса.

Тайный пароль, необходимый для использования закрытого ключа SSL, указанного параметром CURLOPT_SSLKEY .

Замечание:

Так как этот параметр содержит ценный пароль, помните, что данный PHP-скрипт нужно хранить в безопасном месте.

Для следующих значений параметра option , параметр value должен быть массивом:

Параметр Устанавливаемое значение value Замечания
CURLOPT_HTTP200ALIASES Массив HTTP 200 ответов, которые будут трактоваться корректными ответами, а не ошибочными. Добавлен в версии cURL 7.10.3.
CURLOPT_HTTPHEADER Массив устанавливаемых HTTP-заголовков, в формате array(‘Content-type: text/plain’, ‘Content-length: 100’)
CURLOPT_POSTQUOTE Массив FTP-команд, выполняемых на сервере, после выполнения FTP-запроса.
CURLOPT_QUOTE Массив FTP-команд, выполняемых на сервере, перед выполнением FTP-запроса.

Для следующих значений параметра option , параметр value должен быть потоковым дескриптором (возвращаемым, например, функцией fopen() ):

Параметр Устанавливаемое значение value
CURLOPT_FILE Файл, в который будет записан результат передачи. По умолчанию используется поток вывода STDOUT (окно браузера).
CURLOPT_INFILE Файл, из которого должно идти чтение данных, при загрузке на сервер.
CURLOPT_STDERR Альтернативное файл для вывода ошибок, используемый вместо потока ошибок STDERR.
CURLOPT_WRITEHEADER Файл, в который будут записаны заголовки текущей операции.

Callback-функция принимает пять параметров. Первый является декскриптором cURL, второй — общим количеством байт, которое ожидается загрузить с сервера, третий — количество уже загруженных байт, четвертый — общее количество байт, которое ожидается отправить на сервер, и пятый — количество уже отправленных байт.

Замечание:

Callback-функция вызывается только, если опция CURLOPT_NOPROGRESS установлена в значение FALSE .

Можно вернуть ненулевое значение, чтобы отменить передачу. В этом случае будет выставлена ошибка CURLE_ABORTED_BY_CALLBACK .

Другие значения:

Параметр Устанавливаемое значение value
CURLOPT_SHARE Результат выполнения функции curl_share_init() . Позволяет обработчику cURL использовать данные из общего обработчика.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия Описание
5.6.0 Опция CURL_SAFE_UPLOAD теперь имеет значение по умолчанию равное TRUE .
5.6.0 Удалена опция CURLOPT_CLOSEPOLICY и связанные с ней значения.
5.5.0 Ресурс cURL добавлен первым аргументом в callback-функцию CURLOPT_PROGRESSFUNCTION .
5.5.0 Добавлена опция CURLOPT_SHARE .
5.3.0 Добавлена опция CURLOPT_PROGRESSFUNCTION .
5.2.10 Добавлены параметры CURLOPT_PROTOCOLS и CURLOPT_REDIR_PROTOCOLS .
5.1.0 Добавлены параметры CURLOPT_AUTOREFERER , CURLOPT_BINARYTRANSFER , CURLOPT_FTPSSLAUTH , CURLOPT_PROXYAUTH и CURLOPT_TIMECONDITION .
5.0.0 Добавлены параметры CURLOPT_FTP_USE_EPRT , CURLOPT_NOSIGNAL , CURLOPT_UNRESTRICTED_AUTH , CURLOPT_BUFFERSIZE , CURLOPT_HTTPAUTH , CURLOPT_PROXYPORT , CURLOPT_PROXYTYPE , CURLOPT_SSLCERTTYPE и CURLOPT_HTTP200ALIASES .

Примеры

Пример #1 Инициализация сеанса CURL и загрузка web-страницы

// создание нового ресурса cURL
$ch = curl_init ();

// установка URL и других необходимых параметров
curl_setopt ( $ch , CURLOPT_URL , «http://www.example.com/» );
curl_setopt ( $ch , CURLOPT_HEADER , false );

// загрузка страницы и выдача её браузеру
curl_exec ( $ch );

// завершение сеанса и освобождение ресурсов
curl_close ( $ch );
?>

Пример #2 Закачка файла

$data = array( ‘name’ => ‘Foo’ , ‘file’ => ‘@/home/user/test.png’ );

curl_setopt ( $ch , CURLOPT_URL , ‘http://localhost/upload.php’ );
curl_setopt ( $ch , CURLOPT_POST , 1 );
curl_setopt ( $ch , CURLOPT_POSTFIELDS , $data );

Результат выполнения данного примера:

Array ( [name] => Foo ) Array ( [file] => Array ( [name] => test.png [type] => image/png [tmp_name] => /tmp/phpcpjNeQ [error] => 0 [size] => 279 ) )

Примечания

Замечание:

Передача массива в CURLOPT_POSTFIELDS закодирует данные в виде multipart/form-data, тогда как передача URL-кодированной строки закодирует данные в виде application/x-www-form-urlencoded.

Смотрите также

Источник

curl и ожидание ответа от сервера

Кто подскажет как через curl определить ожидание ответа от сервера, и если он не отвечает больше 10 сек вывести сообщение, что сайт временно не работает.

$url="https://www.cyberforum.ru/"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt ($ch, CURLOPT_USERAGENT, $_SERVER [ "HTTP_USER_AGENT" ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $content = curl_exec($ch); curl_close($ch); echo $content;

Парсер на CURL. Пустой запрос от сервера
Здравствуйте. Помогите, пожалуйста, решить такую проблему. Есть парсер, данные получает при помощи.

Убрать BOM символы с ответа сервера
Всем привет! Посылаю запрос серверу $response =.

Куда и как закешировать результат ответа сервера к которому было обращение через сокеты?
У меня есть сайт — электронный магазин. На нем предложено выбрать валюту, но сейчас хотелось бы.

Ожидание ответа от сервера
Клиент1 шлет серверу запрос, в котором содержатся координаты. Координаты заносятся в БД на поле.

Эксперт Hardware

. curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt ($ch, CURLOPT_TIMEOUT, 10); . if(($content = curl_exec($ch)) !== false) { // все OK } else { // ошибка }

Добавлено через 13 минут
Работает

Источник

PHP: Setting cURL timeout options.

This is a short guide on how to use the cURL timeout options in PHP. In certain cases, you may want to specify a timeout in order to prevent your HTTP request from taking too long.

There are two cURL timeout options that you need to know about. These options are slightly different from one another, so I will explain them now:

  • CURLOPT_CONNECTTIMEOUT: The maximum amount of seconds that cURL should spend attempting to connect to a given URL.
  • CURLOPT_TIMEOUT: The maximum amount of seconds it should take for all cURL operations to be carried out. i.e. The maximum amount of time that the request should take.

Take a look at the following piece of code.

In the code above, I set CURLOPT_CONNECTTIMEOUT to 10 seconds and I set CURLOPT_TIMEOUT to 30 seconds. This means:

  • cURL should only spend 10 seconds attempting to connect to the given URL. If it can’t connect after 10 seconds, a timeout should occur.
  • If it does connect successfully, it should only spend a maximum of 30 seconds executing the request. In other words, if we connect, but the server takes too long to respond in full, then cURL should call it a day and stop waiting.

Testing the cURL timeout.

To test this, I added some basic cURL error handling to the end of my script so that any cURL errors would result in an exception being thrown. The local URL that I am sending a HTTP request to uses PHP’s sleep function to create a 40 second delay (which is higher than the 30 seconds limit that we set with CURLOPT_TIMEOUT). As a result, the following exception was thrown:

Uncaught exception ‘Exception’ with message ‘Operation timed out after 30015 milliseconds with 0 bytes received’

As you can see, the cURL timeout after 30,015 milliseconds, which is 30 seconds.

Hopefully this tutorial cleared a few things up for you!

Источник

Читайте также:  Java tostring or null reference
Оцените статью