php卷曲错误http/2流0未干净地关闭:stolopt_error(err 1)

  • 本文关键字:stolopt error err http 错误 php php curl
  • 更新时间 :
  • 英文 :


我试图从一台服务器到另一台服务器击中API,并在curl_error($curl); http/2流中获得此响应,并未干净地关门:>。获取此错误消息的频率很低,在10次尝试中,有1到2次。

但是为什么我会遇到这个错误,是否缺少任何具体原因?

我的卷曲代码是:

$data = http_build_query(array('param1' => 'test','status' => 'Success'));
$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, "server api link");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($curl);
if (curl_error($curl)) {
    $error_msg = curl_error($curl);
}
print_r($error_msg);
curl_close($curl);

查询与此链接卷曲php http/2流0的查询相同。

再次要求它作为上一个链接中没有解决的解决方案,即使在其他任何位置也没有。

我遇到了完全相同的问题,在我的情况下,@codykl的评论实际上解决了它,因此我认为我会把它变成其他人参考的答案。<<<<<<<<<<<<

简短答案:

将以下行添加到您的卷发请求中,所有内容均应解决

curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);

答案略长:

由于curl 7.62.0默认选项是: CURL_HTTP_VERSION_2TLS

在此之前,默认值曾经是: CURL_HTTP_VERSION_1_1

一些较旧的API等似乎与最新的HTTP版本不兼容。较新版本的curl将默认使用此协议,因此将失败。这可能会引起某种相当令人困惑的行为,因为在一台计算机上使用的脚本可能不一定在另一台计算机上使用。为了最大化兼容性,理想情况下,您应该为不支持curl_http_version_2tls的旧服务器指定curlopt_http_version。

最新更新