Вызовите метод WEB API с параметром Simple Type Method из приложения Winform

Я довольно новичок в Web API, поэтому, пожалуйста, прости глупый вопрос

У меня есть метод Web API 2......

[System.Web.Http.HttpPost]
public MyAPIController AddItemToBasket(Guid b, Guid l, Guid a, 
                                       Guid cid, int d, int p, int q)
{
    ..blah blah
}

Я собираю тестовое приложение Winform.

Я не могу передать параметры в метод. Я вижу много примеров, когда метод POST имеет объект в качестве параметра, и это кажется простым, но странно, что передача простых типов кажется гораздо большей головной болью.

Кажется, мне нужно заполнить HTTPContent var и передать его, но я не вижу, как это сделать.

Или я должен просто обернуть эти параметры в объекте. В любом случае - я хотел бы знать, как сделать это для будущего использования.

ТИА,

Муравей

1 ответ

Решение

По умолчанию для POST действия, инфраструктура Web Api будет искать параметры из тела сообщения запроса. Если вы пытаетесь передать параметры из строки запроса, вам нужно использовать [FromUri] приписывать.

[HttpPost]
public IHttpActionResult AddItemToBasket([FromUri]Guid b, [FromUri]Guid l, [FromUri]Guid a, 
                                       [FromUri]Guid cid, [FromUri]int d, [FromUri]int p, 
                                       [FromUri]int q)
{
    ..blah blah
}

или даже лучше сделать NewItemObject и отметьте это атрибутом только один раз.

public class NewItem
{
     public Guid b { get; set; }
     public Guid l { get; set; }
     public Guid a { get; set; }         
     public Guid cid { get; set; }       
     public int d { get; set; }       
     public int p { get; set; }       
     public int q { get; set; }
}

[HttpPost]
public IHttpActionResult AddItemToBasket([FromUri]NewItem item)
{
    ..blah blah
}

Однако я настоятельно рекомендую вам пойти по течению и использовать POST действия API, как они предназначены. То есть отправлять данные нового элемента в тело сообщения.

Другие вопросы по тегам