【发布时间】:2012-11-05 10:27:43
【问题描述】:
我正在尝试使用 PHP 和 cURL 执行 DELETE http 请求。
我已经在很多地方阅读过如何做到这一点,但似乎没有什么对我有用。
这就是我的做法:
public function curl_req($path,$json,$req)
{
$ch = curl_init($this->__url.$path);
$data = json_encode($json);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $req);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data)));
$result = curl_exec($ch);
$result = json_decode($result);
return $result;
}
然后我继续使用我的功能:
public function deleteUser($extid)
{
$path = "/rest/user/".$extid."/;token=".$this->__token;
$result = $this->curl_req($path,"","DELETE");
return $result;
}
这给了我 HTTP 内部服务器错误。 在我的其他函数中,使用与 GET 和 POST 相同的 curl_req 方法,一切顺利。
那我做错了什么?
【问题讨论】:
-
服务器内部错误表示接收请求的脚本出现问题。
-
谢谢布拉德 - 我知道,我猜是因为它不是作为删除请求发送的。如果我为 Firefox 使用 REST 客户端插件并使用 DELETE 发送完全相同的请求,它工作正常。所以看起来 cURL 没有将请求作为 DELETE 发送。
-
谢谢 Marc,但看起来他正在和我做同样的事情?用 PHP 发送 DELETE 请求是不可能的吗?如果没有 cURL 有其他方法,我也愿意使用。