Я пытаюсь создать простой ASP.NET
Web API
, который получает, публикует, помещает и удаляет записи (pharmacyName, pharmacyAddress, pharmacyCategory)
в MySQL
базе данных. Обе мои функции "GET"
успешно выполняются, но когда я проверяю функциональность POST, PUT
или DELETE
в Postman
, я получаю следующую ошибку:
"Сообщение": "Запрошенный ресурс не поддерживает http-метод «POST». "
Я искал решения на форумах и в Интернете, но мне не удалось найти ответ, относящийся к моему делу. Я новичок, поэтому, пожалуйста, прости меня, если я что-то пропустил или использовал неправильную / запутанную терминологию или структуру кодирования.
URL-адрес запроса, который я использую в Почтальоне, - "localhost:59353/api/values/
. Ниже приведены блоки кода из моих ValuesController.cs, RouteConfig.cs, and WebAPIConfig.cs
файлов:
ValuesController.cs Метод POST:
// POST api/values
[System.Web.Http.HttpPost]
public void Post([FromBody]string pharmacyName, string pharmacyAddress, string pharmacyCategory)
{
MySqlConnection conn = WebApiConfig.conn();
MySqlCommand query = conn.CreateCommand();
query.CommandText = "INSERT INTO locations (pharmacyName, pharmacyAddress, pharmacyCategory) VALUES (@pharmacyName, @pharmacyAddress, @pharmacyCategory)";
query.Parameters.AddWithValue("@pharmacyName", pharmacyName);
query.Parameters.AddWithValue("@pharmacyAddress", pharmacyAddress);
query.Parameters.AddWithValue("@pharmacyCategory", pharmacyCategory);
var results = new List<results>();
try
{
conn.Open();
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
results.Add(new results(null, null, null, ex.ToString()));
}
MySqlDataReader fetch_query = query.ExecuteReader();
while (fetch_query.Read())
{
results.Add(new results(fetch_query["pharmacyName"].ToString(), fetch_query["pharmacyAddress"].ToString(), fetch_query["pharmacyCategory"].ToString(), null));
}
}
RouteConfig.cs:
public class RouteConfig
{
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 }
);
}
}
WebAPIConfig.cs:
public static class WebApiConfig
{
public static MySqlConnection conn()
{
string conn_string = "server=localhost;port=3306;database=map;username=root;password=123456";
MySqlConnection conn = new MySqlConnection(conn_string);
return conn;
}
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}