API上是否有httpClient请求取消订单?

问题描述 投票:0回答:1

我想在我的应用程序中以 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)。

c# asp.net-mvc api httpclient shopify-api
1个回答
0
投票

不知道为什么你想要

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();
}
© www.soinside.com 2019 - 2024. All rights reserved.