Я создаю веб-API с использованием MVC и Visual Studio, однако я сталкиваюсь с проблемой.Я использую это для настольной версии почтового администратора, а не через браузер через локальный хост.
То, как я вызываю URL-адрес:
http://localhost:12513/api/CustomerContracts/AddCustomer
[System.Web.Http.HttpPost]
[System.Web.Http.Route("AddCustomer/{description}/{customerRef}/{contractTypeId}/{startDate}/{EndDate}")]
public async Task AddCustomer(string Description, string CustomerRef, int ContractTypeId, DateTime startDate, DateTime endDate)
{
CustomerContracts _newContact = new CustomerContracts();
try
{
_newContact.Description = Description;
_newContact.CustomerRef = CustomerRef;
_newContact.ContractTypeId = ContractTypeId;
_newContact.StartDate = startDate;
_newContact.EndDate = endDate;
db.Entry(_newContact).State = EntityState.Modified;
db.CustomerContract.Add(_newContact);
await db.SaveChangesAsync();
}
catch (Exception x)
{
throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent(x.Message) });
}
}
Когда я запускаю вышеупомянутое в post man, он выдает мне сообщение об ошибке:
{"Message": "Запрошенный ресурс не поддерживает http-метод" POST "."}
Я попробовал другой SO по тому же вопросу, но это не решает мою проблему здесь.
Я использую файл маршрута по умолчанию, который находится в проекте веб-API, когда он созданв первый раз.
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Редактировать 2
Я сделал следующие предложения и тот же результат сообщения об ошибке в почтальоне.
[System.Web.Http.HttpPost]
[System.Web.Http.Route("AddCustomer/{Description}/
{CustomerRef}/{ContractTypeId}/{startDate}/{endDate}")]
public async Task AddCustomer(string Description, string CustomerRef, int ContractTypeId, DateTime startDate, DateTime endDate)
{
CustomerContracts _newContact = new CustomerContracts();
try
{
_newContact.Description = Description;
_newContact.CustomerRef = CustomerRef;
_newContact.ContractTypeId = ContractTypeId;
_newContact.StartDate = startDate;
_newContact.EndDate = endDate;
db.Entry(_newContact).State = EntityState.Modified;
db.CustomerContract.Add(_newContact);
await db.SaveChangesAsync();
}
catch (Exception x)
{
throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent(x.Message) });
}
}