将命令 cURL 转换为 php cUrl


Converting Command cURL to php cUrl

我试图转换在第一个示例代码中找到的cURL代码。这是他们给我的 cURL:

curl -X GET -H "Content-type: application/json" -d '{"api_key":"zUYwqLqwTqpyJ2bA7osy"}' https://statushub.io/api/status_pages

这是我到目前为止所拥有的,它不起作用:

<?php
#$cmd= 'curl -X GET -H "Content-type: application/json" -d ''{"api_key":"a991d51f4f7ea269ccfbfa68621b3aa3"}'' https://statushub.io/api/status_pages';
#exec($cmd,$result);
#echo gettype($result), "'n";
#echo print_r(curl_exec($cmd));
$ch = curl_init('https://statushub.io/api/status_pages');
curl_setopt($ch, CURLOPT_HTTPHEADER, 'Content-type: application/json');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"api_key":"a991d51f4f7ea269ccfbfa68621b3aa3"}');
#curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$test = curl_exec($ch);
curl_close($ch);
echo (string)$test;
if(curl_exec($ch) === false)
{
    echo 'Curl error: ' . curl_error($ch);
}
else
{
    echo 'Operation completed without any errors';
}
echo "<pre>";
print_r($test);
echo "</pre>";
?>

我包括了一些其他的尝试,并用编码的行。我尝试查看php cURL文档,但我无法弄清楚这一点。

提前谢谢。

以下是 curl 命令的直接翻译,我注意到的唯一主要区别是标头在数组中并将CURLOPT_CUSTOMREQUEST设置为 GET

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://statushub.io/api/status_pages");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"api_key":"zUYwqLqwTqpyJ2bA7osy"}');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = array();
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$test = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
echo "<pre>";
print_r($test);
echo "</pre>";