【发布时间】:2016-08-01 22:37:03
【问题描述】:
在我的 curl 操作中,我无法卷曲使用 TLS 1.2 的 HTTPS url - 我将登录数据发布到网站并将其保存在 cookiefile 中。我收到的错误消息是这样的:
“API 错误:SSL 连接错误”
我尝试将curl_setopt($ch, CURLOPT_POST) 设置为 6,但这似乎不起作用,有什么建议吗?
我正在使用的版本:
OpenSSL 版本为 1.0.2b CURL 版本是 7.49.1 PHP 是 5.5 代码如下:
public function curl_request($url, $data, $method = 'GET', $headers = array(), $ssl_verify = false)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $ssl_verify);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $ssl_verify);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_FAILONERROR, false);
curl_setopt($ch, CURLOPT_HTTP200ALIASES, range(400, 599));
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
if ($method == 'POST')
{
curl_setopt($ch, CURLOPT_POST, 6);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
$resp = curl_exec($ch);
if(curl_errno($ch))
{
throw new Exception('Unleashed API Error:' . curl_error($ch));
}
//print("<pre>" . print_r($resp, true). "</pre>")
$info = curl_getinfo($ch);
curl_close($ch);
$output = array();
$output['resp'] = $resp;
$output['info'] = $info;
【问题讨论】:
-
$ssl_verify 是真还是假?
-
$ssl_verify = false