-1

我正在向 Quick blox API 发送自定义对象类的 DELETE 请求。但它没有删除记录。我正在使用 CURL php 发送请求。这是我的代码:

$url =" https://api.quickblox.com/data/TopPlace/50e3d8db535c123833015181.json" 
$ch = curl_init();  
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$result = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

但执行此命令后,它不会删除数据。我回显 $status 它向我显示 422 代码。

4

2 回答 2

3

您将收到 422 状态码。你查到了吗?

引用维基百科:

4xx 类状态码适用于客户端似乎出错的情况。除了响应 HEAD 请求时,服务器应该包含一个实体,其中包含对错误情况的解释,以及它是临时情况还是永久情况。这些状态码适用于任何请求方法。用户代理应该向用户显示任何包含的实体。

特别是对于 422:

422 Unprocessable Entity (WebDAV; RFC 4918):请求格式正确,但由于语义错误而无法遵循。

RFC 4918给出了更多细节:

422(Unprocessable Entity)状态码意味着服务器理解请求实体的内容类型(因此 415(Unsupported Media Type)状态码是不合适的),并且请求实体的语法是正确的(因此是 400(Bad Request) ) 状态码不合适)但无法处理包含的指令。例如,如果 XML 请求正文包含格式正确(即语法正确)但语义错误的 XML 指令,则可能会出现这种错误情况。

所以答案很可能是你的内容$data不是服务器所期望的。

还要确保检查该QuickBlox API 中可能的 API 错误代码的文档:

由于您声明错误是

{"errors":{"base":["Forbidden. Need user."]} 

我天真的假设是您在使用该服务之前忘记了身份验证。

于 2013-01-03T10:02:40.853 回答
0

为了使用 QuickBlox API,您必须创建会话。然后您将在 QuickBlox 环境中拥有 READ 访问权限。

为了创建/更新/删除记录,您必须登录并代表用户行事。

所以,有2种方法:

另外,请注意您可以删除自己的对象,而不是其他用户的对象。

于 2013-01-03T16:55:37.820 回答