【发布时间】:2020-11-10 21:03:39
【问题描述】:
在我的情况下,用户已登录并想删除他的帐户。 然后他触发了一个 POST 表单,通过确认他的密码来重新验证该过程。
现在我想向 api/server 发送一个 cURL DELETE 并同时传递确认的密码。
我的做法是:
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => "https://www.myurl.com/v1/users",
CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => json_encode(['cnfpwd' => $_POST['cnfpwd']]), //confirmed password
CURLOPT_HTTPHEADER => array('X-API-KEY: '$apiKey),
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
));
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
//For testing purposes only
print_r($response);
print_r($data);
如果这种方法是正确的,我将如何在 API/服务器端获取 POSTFIELDS? 由于这是一个 DELETE 请求,$_GET、$_POST、$_REQUEST 为空。
编辑: 用于测试的api代码:
<?php
if($_SERVER['REQUEST_METHOD'] == "DELETE"){
echo"POST: ";print_r($_POST);
}
?>
结果是:
POST: 数组 ( )
【问题讨论】:
-
如果您执行 DELETE 请求,您将在 $_POST 中找到您的数据
标签: api rest php-curl http-delete