我的服务器的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);
我可以通过HTTP 1.1使用curl吗?
我的服务器版本为
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)