我想在我的应用程序中以 API 形式取消(而不是删除)Shopify 上的订单。
目前我正在使用这段代码来取消订单
public IActionResult Cancel(double? id)
{
_httpClient.BaseAddress = new Uri("");
APISecurity.InitHeader(_httpClient);
var response = _httpClient.PostAsync($"orders /{id}/cancel.json/").Result; //Not compiling, Giving Error, I want to send cancel order request
通过 API 使用邮递员工作正常(使用 _httpClient.PostAsync)。
不知道为什么你想要
CancelAsync
,没有这样的HTTP动词。 文档声明这是正常的POST
。但是您缺少 Post 请求的 JSON 正文。
出于某种原因,您将
BaseAddress
设置为 ""
,我不确定您为什么将其设置在这里。它应该在您创建 HttpClient
时设置一次。
也可以使用
await
代替 .Result
。
public async Task<IActionResult> Cancel(double id, decimal? amount = null, string? currency = null, bool? email = null, CancellationReason? reason = null, bool? restock = null)
{
APISecurity.InitHeader(_httpClient);
using var response = await _httpClient.PostAsJsonAsync(
$"orders/{id}/cancel.json/",
new {
amount = amount.ToString("0.00"),
currency,
email,
reason = reason.ToString(),
restock,
});
response.EnsureSuccessStatusCode();
return Ok();
}