如何编写PHP curl删除请求

如何编写PHP curl删除请求,php,curl,digital-ocean,Php,Curl,Digital Ocean,我正在引用DigitalOcean的API文档,它们给出了以下关于如何删除水滴的示例: curl -X DELETE -H "Content-Type: application/json" -H "Authorization: Bearer API_TOKEN" "https://api.digitalocean.com/v2/droplets/[DROPLET_ID]" 如何用PHP curl编写这个 我目前有: $ch = curl_init('https://api.digitaloce

我正在引用DigitalOcean的API文档,它们给出了以下关于如何删除水滴的示例:

curl -X DELETE -H "Content-Type: application/json" -H "Authorization: Bearer API_TOKEN" "https://api.digitalocean.com/v2/droplets/[DROPLET_ID]"
如何用PHP curl编写这个

我目前有:

$ch = curl_init('https://api.digitalocean.com/v2/droplets/18160706');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer MY_API_TOKEN')
);

$result = curl_exec($ch);
echo $result;
但这并不是删除我的液滴,而是返回(是的,液滴id是正确的):


您需要将
CURLOPT_CUSTOMREQUEST
设置为
DELETE
,如PHP手册中所述。请花点时间读一下。下面的代码应该可以工作

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$result = json_decode($result);
curl_close($ch);
试试这个

将CUTLOPT_CUSTOMREQUEST更改为“删除”


可能是重复的,我用它来发送删除请求,但我正在与之交互的API(Mollie)仍然不允许这样做。它们的响应是405状态代码和标题
访问控制允许方法:GET、POST、HEAD、OPTIONS、DELETE
。有什么想法吗?对我来说,同样的问题,对于nginx、php-fpm和slim,一切都可以从swagger中正常工作,但是从phpunit测试用例中,它给出了{“status”:405,“error:“Method DELETE not in allowed methods(POST,GET)”}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$result = json_decode($result);
curl_close($ch);
$ch = curl_init('https://api.digitalocean.com/v2/droplets/18160706');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer MY_API_TOKEN')
);

$result = curl_exec($ch);
echo $result;