Php 从https启动curl

Php 从https启动curl,php,curl,https,http-status-code-403,php-curl,Php,Curl,Https,Http Status Code 403,Php Curl,我正在进行API连接,服务器要求从https服务器进行调用,但我找不到如何使用https而不是普通http来启动CURL调用 这是我的代码: $url = 'https://app.webinarjam.com/api/v2/webinar'; $curlHandle = curl_init(); curl_setopt($curlHandle, CURLOPT_URL, $url); curl_setopt($curlHandle, CURLOPT_HEADER, 1); curl_setop

我正在进行API连接,服务器要求从https服务器进行调用,但我找不到如何使用https而不是普通http来启动CURL调用

这是我的代码:

$url = 'https://app.webinarjam.com/api/v2/webinar';
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $url);
curl_setopt($curlHandle, CURLOPT_HEADER, 1);
curl_setopt($curlHandle, CURLOPT_HTTPHEADER, array("Content-type: application/x-www-form-urlencoded"));
curl_setopt($curlHandle, CURLOPT_HTTPHEADER, array("Expect:"));
curl_setopt($curlHandle, CURLOPT_HTTPHEADER, array("Accept: application/json" ));
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYHOST, 2);
$query = http_build_query($data);
curl_setopt($curlHandle, CURLOPT_POST, true);
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $query);

ob_start();
curl_exec($curlHandle);
$content = ob_get_contents();
ob_end_clean();
我刚收到403封禁回复

我已经确保api键和url端点都是正确的,所以403的唯一原因是调用不是从https站点进行的

网站托管是一个共享服务器

有什么想法吗

编辑:这来自API文档:

请注意,您需要通过SSL连接到我们的服务器 安全连接。将删除非SSL连接


CURLOPT_HTTPHEADER接受数组作为参数的原因是,您可以一次指定多个标头。我认为这可能是问题所在,因为最后一个问题可能会压倒以前的问题

$headers    =   [];
$headers[]  =   "Content-type: application/x-www-form-urlencoded";
$headers[]  =   "Except: ";
$headers[]  =   "Accept: application/json";

$url = 'https://app.webinarjam.com/api/v2/webinar';
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $url);
curl_setopt($curlHandle, CURLOPT_HEADER, 1);
curl_setopt($curlHandle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYHOST, 2);
$query = http_build_query($data);
curl_setopt($curlHandle, CURLOPT_POST, true);
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $query);

ob_start();
curl_exec($curlHandle);
$content = ob_get_contents();
ob_end_clean();

您在URL中指定了https://吗?CURL不知道您与web服务器的连接是什么,也不应该在意。最可能的问题是您没有在URL前面加上
https://
。尝试
$url=preg\u replace('/^https?:\/\/'、'https://'、$url)以确保URL通过SSL连接。我正在调用的URL是https
$URL=https://app.webinarjam.com/api/v2/webinar';我很确定你搞错了403的原因。