Как использовать PHP cURL с HTTP / 1.1 - PullRequest
4 голосов
/ 18 марта 2019

Моя версия сервера cURL новее, чем версия клиента при выполнении удаленного вызова, сервер клиента автоматически переключается на http / 2, есть ли способ, которым я могу заставить использовать curl с http / 1.1

Как установить cURLВерсию HTTP до 1.1 я протестировал, добавив в код следующие настройки, но после добавления этот curl перестает работать.Все виды помощи заметны.Заранее спасибо.

 curl_setopt($ch, CURLOPT_HTTP_VERSION, '1.1');
 curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);

Есть ли способ использовать curl с HTTP 1.1?

Версии моего сервера:

Версия PHP 7.2.16

Информация о cURL 7.62.0

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

//curl_setopt($ch, CURLOPT_HTTP_VERSION, '1.1');
//curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);

curl_setopt($ch, CURLOPT_USERPWD, $user . ':' . $pass);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)');
curl_setopt($ch, CURLOPT_TIMEOUT, 2400);  */
curl_setopt($ch,CURLOPT_HTTPHEADER, array(
   //  "http:1.1",
  'http' => array(
     'timeout' => 5,
     'protocol_version' => 1.1,
     'header' => 'Connection: close'
   ),
   "Content-Type: text/event-stream",
   "cache-control:no-cache",
   "Access-Control-Allow-Origin:*",
   'Authorization: Basic '. base64_encode($user.':'.$pass)
 ));


 $error  = 0;
 $result = curl_exec($ch);
 $info  = curl_getinfo($ch);
 $err   = curl_errno($ch);

Ответ команды технической поддержки клиента: Проблема ->Вы начинаете с версии 1.1, затем она меняется на 2

При использовании HTTP2 сервер поддерживает многоцелевое использование

Состояние соединения изменено (подтверждено HTTP / 2)

...