0

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

$data 是通过 ajax 从另一个页面发送的。如果我在声明 $data 后在声明 $curl 之前回显它,我想使用的 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'];
}
?>
4

1 回答 1

0

解决了它 - 结果在存储的 $data URL 的末尾有一些额外的空白,我使用 trim() 清理了这些空白。

于 2022-01-24T08:54:33.783 回答