我正在使用php版本5.3.10并使用curl版本7.22.0当我使用此代码时:
$curlOptions[CURLOPT_URL] = $absUrl;
$curlOptions[CURLOPT_RETURNTRANSFER] = true;
$curlOptions[CURLOPT_CONNECTTIMEOUT] = 30;
$curlOptions[CURLOPT_TIMEOUT] = 80;
$curlOptions[CURLOPT_HTTPHEADER] = $headers;
$curlOptions[CURLOPT_SSLVERSION] = CURL_SSLVERSION_TLSv1;
Run Code Online (Sandbox Code Playgroud)
它给出以下错误:
使用未定义的常量CURL_SSLVERSION_TLSv1 - 假设为'CURL_SSLVERSION_TLSv1'
请帮我解决这个错误.我应该为这个PHP版本使用什么CURL SSL版本?
hel*_*ert 11
在官方文档中实际上有关于此问题的评论:
请注意,在PHP 5.5之前,以下常量缺失并且仅通过其数值可用:
Run Code Online (Sandbox Code Playgroud)CURL_SSLVERSION_DEFAULT // 0 CURL_SSLVERSION_TLSv1 // 1 CURL_SSLVERSION_SSLv2 // 2 CURL_SSLVERSION_SSLv3 // 3
在此支持请求之后修复了此问题:https://bugs.php.net/bug.php?id = 62318
如果要显式使用TLSv1,只需提供1
整数文字而不是CURL_SSLVERSION_TLSv1
常量.
但是,除非您要连接的服务器需要非常特定的TLS协议版本,否则通常可以将cURL选项保留为其默认值,并让cURL自行确定协议.
我刚刚将它添加到我的启动文件的顶部:
// Add some missing constants
defined('CURL_SSLVERSION_DEFAULT') || define('CURL_SSLVERSION_DEFAULT', 0);
defined('CURL_SSLVERSION_TLSv1') || define('CURL_SSLVERSION_TLSv1', 1);
defined('CURL_SSLVERSION_SSLv2') || define('CURL_SSLVERSION_SSLv2', 2);
defined('CURL_SSLVERSION_SSLv3') || define('CURL_SSLVERSION_SSLv3', 3);
Run Code Online (Sandbox Code Playgroud)
...现在我好多了,因为正如助手引用的那样,PHP <5.5中缺少这些常量.
归档时间: |
|
查看次数: |
9752 次 |
最近记录: |