变量在cURL CURLOPT_URL(PHP)中不起作用



我试图在cURL GET请求中使用一个变量作为URL,但它不起作用。

$data通过ajax从另一个页面发送。如果在声明$data之后和声明$curl之前回显$data,则会显示我要使用的URL(https://api.calendly.com/event_types/d5d0d786-54b8-4e85-83ce-5b5d853957fa(。

但是在cURL请求中使用$data是行不通的。如果我将$data变量替换为字符串形式的URL-"https://api.calendly.com/event_types/d5d0d786-54b8-4e85-83ce-5b5d853957fa",它运行良好,并从响应中返回我想要的值('scheduling_URL'(,所以我不明白为什么包含相同内容的$data变量不起作用。

该变量是否在某种程度上没有正确传递到cURL请求中?非常感谢任何建议。谢谢

<?php
$data = isset($_REQUEST['myData'])?$_REQUEST['myData']:"";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $data,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer MY_TOKEN",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
$response_json = json_decode($response, true);
echo $response_json['resource']['scheduling_url'];
}
?>

解决了这个问题-原来在存储的$data URL的末尾有一些额外的空白,我用trim((清理了它。

最新更新