【问题标题】:How to write PHP curl DELETE request如何编写 PHP curl DELETE 请求
【发布时间】:2016-06-26 03:40:53
【问题描述】:

我正在参考 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;

但这并没有删除我的 droplet 而是返回(是的,droplet id 是正确的):

{"id":"not_found","message":"The resource you were accessing could not be found."}1

【问题讨论】:

标签: php curl digital-ocean


【解决方案1】:

试试这个

将 CUTLOPT_CUSTOMREQUEST 更改为“DELETE”Find More

$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;

【讨论】:

  • 我用它来发送删除请求,但我正在与之交互的 API (Mollie) 仍然不允许它。它们以 405 状态代码和标题 Access-Control-Allow-Methods: GET, POST, HEAD, OPTIONS, DELETE 进行响应。有什么想法吗?
  • 对我来说同样的问题,使用 nginx、php-fpm 和 slim 一切正常,但从 phpunit 测试用例中它给出 {"status":405,"error":"Method DELETE not in允许的方法(POST、GET)"}
【解决方案2】:

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

$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);

【讨论】:

    猜你喜欢
    • 2012-11-05
    • 2016-10-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 2011-03-07
    相关资源
    最近更新 更多