Запрещенная ошибка при добавлении контента json в HttpRequesMessage.Content - PullRequest
0 голосов
/ 13 февраля 2020

Получает список заказов от Orderhive API и использует AWS4 Signature. С помощью этого кода я могу получить список заказов, но мне нужно отфильтровать статус заказов, чтобы получать только confirm заказов. Моя проблема заключается в том, чтобы получать только подтверждающие заказы.

public void GetOrdersFromOrderHiveNewVersion(List<Order> orders, string nexttoken="")
{
    _credentails = Authentication1();
    try
    {
        OAuthBase oAuth = new OAuthBase();
        var endPoint = "https://api.orderhive.com/orders/salesorder";
        if (!string.IsNullOrEmpty(nexttoken))
            endPoint = string.Format("{0}?next_token={1}", endPoint, nexttoken);

        // 0. Prepare request message.
        HttpRequestMessage msg = new HttpRequestMessage(HttpMethod.Post, endPoint);
        oAuth.AWSSignature(msg, _credentails);

        var filterObj = new Filters();
        var statFilter = new StatusFilter();
        string[] stat = new string[] { "confirm"};
        statFilter.order_status = stat;
        filterObj.filters = statFilter;
        var stringPayload = JsonConvert.SerializeObject(filterObj);
        var httpContent = new StringContent(stringPayload, Encoding.UTF8, "application/json");
        msg.Content = httpContent;

        HttpClient client = new HttpClient();
        HttpResponseMessage result = client.SendAsync(msg).Result;
    }
    catch (Exception ex) { }
}

Запрещена ошибка в получении заказов от Orderhive API при передаче фильтра в HttpRequestMessage.Content

1 Ответ

0 голосов
/ 13 февраля 2020

В документации сказано, что Фильтр является частью тела вашего запроса. Так что вы можете попробовать это

msg.Content = httpContent;
HttpClient client = new HttpClient();
HttpResponseMessage result = client.SendAsync(msg).Result;

Надеюсь, это поможет!

...