ASP.NET ApiController внутри веб-формы не может достичь методов

В моем случае я не использовал /etc/nginx/sites-available/default Я использовал другой файл конфигурации блока сервера (например, example.com), и единственный способ, которым я смог исправить эту проблему, - удалить файл конфигурации сервера по умолчанию, символический link:

$ rm /etc/nginx/sites-enabled/default

, затем перезагрузка Nginx:

$ sudo systemctl reload nginx
0
задан Gonzalo 5 March 2019 в 20:53
поделиться

3 ответа

используйте префикс router с вашим контроллером. Таким образом, вы получаете доступ к URL-адресу как

    http://localhost/routerprefix/router

. Класс HttpClient можно использовать для отправки и получения HTTP-запросов и ответов. Поскольку вы пытаетесь использовать WebApi со страницы aspx, лучшим способом является создание экземпляра HttpClient

Ниже приведена очень простая реализация. Пожалуйста, проверьте этот URL для получения дополнительной информации

MSDN образец


    HttpClient client = new HttpClient();

    HttpResponseMessage response = await client.GetAsync("http://localhost:49342/api/get");
    if (response.IsSuccessStatusCode)
    {
        product = await response.Content.ReadAsAsync();
    }

0
ответ дан Sajitha Wattage 5 March 2019 в 20:53
поделиться

На первый взгляд, все выглядит правильно:

вы получили:

  1. config.MapHttpAttributeRoutes(); - настройте маршрут атрибута
  2. config.Routes.MapHttpRoute( - установить маршрут по умолчанию
  3. GlobalConfiguration.Configure(WebApiConfig.Register); - зарегистрироваться при запуске

, чтобы он работал.

Думаю, проблема в том, как вы ее называете

Маршрутизация WebAPI немного отличается от MVC

, например:

В методе get get маршрут установлен как показано ниже

[HttpGet, Route("api/get")]

, поэтому вы должны назвать его {host}/api/get, используя метод GET http

на снимке экрана, который вы вызываете с помощью {host}/api/get/Get - который не будет работать, потому что ни один маршрут не будет соответствовать

То же самое для вашего метода POST

Так что попробуйте еще раз, и вы сможете добраться до него

0
ответ дан Alan Tsai 5 March 2019 в 20:53
поделиться

URL-адрес, который нужно добавить в инструмент тестирования остальных:

http://localhost:49342/api/get

Тип метода: GET

Если вы вызываете этот веб-API со страницы aspx, используйте класс httpClient.

0
ответ дан Sajitha Wattage 5 March 2019 в 20:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: