Вызовите метод 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
}
или даже лучше сделать NewItem
Object
и отметьте это атрибутом только один раз.
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, как они предназначены. То есть отправлять данные нового элемента в тело сообщения.