我正在向自定义对象类的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代码。
答案 0 :(得分:3)
您将获得422状态代码。你看起来了吗?
4xx类状态代码适用于客户端似乎有错误的情况。除了在响应HEAD请求时,服务器应该包含一个实体,其中包含错误情况的解释,以及它是临时或永久条件。这些状态代码适用于任何请求方法。用户代理应向用户显示任何包含的实体。
特别是422:
422 Unprocessable Entity(WebDAV; RFC 4918):请求格式正确,但由于语义错误而无法遵循。
RFC 4918提供了更多详细信息:
422(不可处理实体)状态代码表示服务器理解请求实体的内容类型(因此415(不支持的媒体类型)状态代码不合适),并且请求实体的语法是正确的(因此400 (错误请求)状态代码不合适)但无法处理包含的指令。例如,如果XML请求主体包含格式正确(即语法正确)但语义错误的XML指令,则可能会出现此错误情况。
所以答案很可能是$data
的内容不是服务器所期望的内容。
另请务必查看documentation for Possible API Error Codes in that QuickBlox API:
由于您声明错误是
{"errors":{"base":["Forbidden. Need user."]}
我天真的假设是您在使用该服务之前忘了进行身份验证。
答案 1 :(得分:0)
要使用QuickBlox API,您必须创建会话。然后,您将在QuickBlox环境中拥有READ访问权限。
为了创建/更新/删除记录,您必须登录并代表用户行事。
所以,有两种方法:
另外,请注意您可以删除自己的对象,而不是其他用户的对象。