【发布时间】:2012-07-28 17:56:09
【问题描述】:
我正在使用 Adobe AIR 并通过 REST API 与 force.com 平台集成,到目前为止它的进展相对顺利,但我在使用 DELETE 方法时遇到了困难。
The documentation 很简单:
删除帐户记录
使用 DELETE 方法删除一条记录。 在此示例中,删除了客户记录。
删除帐户对象中的字段的示例用法
卷曲https://instancename.salesforce.com/services/data/v20.0/sobjects/Account/001D000000INjVe -H "授权:承载token" -H "X-PrettyPrint:1" -X DELETE
删除客户记录的示例请求正文
不需要
删除客户记录的示例响应正文
没有返回
我的代码如下,注意HTTPConnection.send()的第二个参数是要调用的方法。
var headers:Object = new Object();
headers["Authorization"] = "Bearer "+ConnectionAccessToken;
var url:String = ConnectionInstanceURL + "/services/data/v"+_apiVersionNumber+"/sobjects/"+type+"/"+id;
var response:RESTResponse = new RESTResponse(callback);
var httpCallback:IResponder = new mx.rpc.Responder(response.resultHandler,response.faultHandler);
HTTPConnection.send(headers,"DELETE",url,httpCallback);
类似的代码非常适合其他操作,奇怪的是这本身并没有失败,而是收到了成功的响应,但会返回有问题的记录及其所有字段。我似乎看到了[select * from Object where Id = <id> 的结果,只是为了澄清记录没有删除。该对象没有任何主从关系,所以我不确定还有什么可能阻止这种删除发生 - 有没有人遇到过这个问题或有关于如何解决它的建议?
【问题讨论】:
-
HTTPConnection?东德埃斯塔?你从哪里得到这个类,它支持“DELETE”作为 HTTP 方法吗?
-
+1,我会先拍一下 TCP 嗅探器(我通常求助于ws.apache.org/commons/tcpmon),然后首先验证您发送的内容是否合法。您可能实际上并没有发送您认为的动词,因为您似乎收到了对 GET 的响应。
-
看起来我可能像往常一样忽略了显而易见的事情。我做了一个危险的假设,即 HTTPConnection 是 Adobe 提供的类,它不是,它利用了 Adobe 的 HTTPService 类。看起来我有一些调查要做:“可选,您可以将参数传递给指定的 URL。当您不通过基于服务器的代理服务时,您只能使用 HTTP GET 或 POST 方法。但是,当您将 useProxy 属性设置为 true 并使用基于服务器的代理服务,还可以使用 HTTP HEAD、OPTIONS、TRACE 和 DELETE 方法。"
标签: actionscript-3 rest salesforce