【发布时间】:2018-06-13 13:12:57
【问题描述】:
我需要一些关于如何使用 Acumatica REST API (v17.204.0019) 让 HttpClient DeleteAsync 工作的建议。我已经成功地使用 GetAsync 完成了 GET,但是使用同一数据行的 DeleteAsync 的 DELETE 返回了 500 错误。我对 GET 和 DELETE 调用使用相同的 URL --
https://localhost/AcuAmazon172040019/entity/Default/17.200.001/SalesOrder/SO/001337
但 GET 会返回预期的 json,而 DELETE 会抛出 500。GetAsync 调用如下所示:
Response = HttpClient.GetAsync(url).Result.EnsureSuccessStatusCode();
DeleteAsync 调用如下所示:
Response = HttpClient.DeleteAsync(url).Result.EnsureSuccessStatusCode();
其中 Response 是一个 HttpResponseMessage 属性,而 HttpClient 是一个 HttpClient 属性。
【问题讨论】:
-
我将 https 排除在外,因此我的 URL 现在看起来像这样:localhost/AcuAmazon172040019/entity/Default/17.200.001/…。现在我没有收到异常或 500 错误,但我得到的响应字符串是“Id = 86, Status = Faulted, Method = "{null}", Result = "{Not yet computed}""。
-
没关系,我仍然收到 500 错误,但由于某种原因它没有被捕获,直到我添加了一个额外的 try...catch。 EnsureStatusCode() 抛出 500,没有内部异常或我能找到的更多详细信息。
-
我不知道这是否与它有关,但是当我使用 Postman 执行此操作时,它成功运行,但返回有关删除按钮被禁用的消息。所以我随后将订单 # 更改为打开的订单,邮递员返回“没有实体满足条件”。我试过三个未结订单号,它总是返回这个。所以现在也有这个问题。
-
所以看起来即使调用成功也会抛出500错误,但是却无法通过key找到销售订单。使用开放式 SO 订单号时,我在 C# 中得到相同的“没有实体满足条件”响应。当我知道订单号在那里时,我现在需要弄清楚为什么找不到订单号。
标签: rest api httpclient acumatica