Использовать методы действия веб-API с настраиваемым именем

Я пытаюсь использовать веб-API, в котором имена методов действий являются обычными, такими как CreateCustomer (..), GetCustomer (...). Они помечены [HttpPost] / [HttpGet]. Я не уверен, как использовать его с помощью HttpClient (). Если установлено следующее, и мне звонят

HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://host/directory/");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = client.PostAsJsonAsync("api/customer", cutomerObj).Result;

Он выдает 404. Где, как будто я использую скрипач и отправляю запрос на http://host/directory/api/customer с клиентским объектом JSON он отлично работает

Что именно мне здесь не хватает? Нужно ли мне использовать POST и GET как методы?


person Salman    schedule 08.07.2015    source источник
comment
вам необходимо настроить свой маршрут так, чтобы он включал action, например, api/{controller}/{action}/{id}, и совершал вызов, например, api/customer/CreateCustomer.   -  person Amit Kumar Ghosh    schedule 08.07.2015
comment
Был ли этот пост полезен?   -  person Amit Kumar Ghosh    schedule 08.07.2015
comment
я уже настроил свой маршрут как таковой   -  person Salman    schedule 09.07.2015


Ответы (1)


вам необходимо настроить свой маршрут, чтобы включить action, например, api/{controller}/{action}/{id}, и сделать вызов, например, api/customer/CreateCustomer

введите описание изображения здесь

введите описание изображения здесь

из C #,

var t = new HttpClient().GetAsync("http://localhost:63154/api/UserApi/CreateCustomer").Result.Content.ReadAsStringAsync().Result;
person Amit Kumar Ghosh    schedule 08.07.2015
comment
Спасибо. это сработало. Поскольку я отправлял собственный класс методу. Мне пришлось внести следующие изменения var response = client.PostAsJsonAsync (host / directory / api / customer / createcustomer, customerObj) .Result; - person Salman; 09.07.2015
comment
точно, как HttpContent. - person Amit Kumar Ghosh; 09.07.2015