2017-02-10 7 views
2

Я проверил некоторое количество ссылок, чтобы понять причину ошибки, но не исправил мою проблему.Не найден ресурс HTTP, соответствующий запросу URI

Я пытаюсь получить доступ к действию WebAPi от Postman, но получаю следующую ошибку.

«сообщение»: «Ни один HTTP ресурс не был найден соответствующий запрос URI„http://localhost:50684/api/albums/history“.»,
«messageDetail»: «Ни один тип не был найден соответствующий контроллер с именем„альбом“»

Мой API.

[Authorize] 
public class AlbumsController : ApiController 
{ 

    [HttpGet] 
    [Route("api/album/history/")] 
    public BaseTO GetHistory(string type,int id) 
    { 
     //api stuff 
    } 
} 

Я попытался с api/album/history/{anything}

При принятии вызова от Почтальон я передаю: -

  • Авторизация Токен
  • Тип
  • Id

Любая помощь/предложение высоко оценили. Благодаря

+0

у вас включен маршрутизация атрибутов в api config? 'config.MapHttpAttributeRoutes();' – Developer

+0

URL и сообщение об ошибке не совпадают. он показывает, что URL-адрес ищет «AlbumController», но URL-адрес имеет альбомы (множественное число) – Nkosi

+0

вы можете попробовать с http: // localhost: 50684/api/albums/history? type = a & id = 1 , а также добавить маркер авторизации в заголовке, делая запрос от Postman? –

ответ

2

Вы активировали маршрутизацию атрибутов в конфигурации api? config.MapHttpAttributeRoutes();

С текущего маршрута, вы должны ударить его с помощью строки запроса http://localhost:50684/api/albums/history?type=test&id=1 и декорировать параметры с [FromUri]

[HttpGet] 
    [Route("api/albums/history/")] 
    public IHttpActionResult GetHistory([FromUri]string type,[FromUri]int id) 
    { 
     //api stuff 
    } 

или ударить по API с помощью параметров маршрута - http://localhost:50684/api/albums/history/test/1

[HttpGet] 
    [Route("api/albums/history/{type}/{id}")] 
    public IHttpActionResult GetHistory(string type,int id) 
    { 
     //api stuff 
    } 
+0

Спасибо. можете ли вы, пожалуйста, поддержать мой пост, если вы считаете его достойным? –

+0

Рад, что я помог. Готово :) – Developer

0

Ваш код должен быть таким:

[Authorize] 
public class AlbumsController : ApiController 
{ 

    [HttpGet] 
    [Route("api/albums/history/")] 
    public IHttpActionResult GetHistory(string type,int id) 
    { 
     //api stuff 
    } 
} 

и ваш звонок от Почтальон должен быть, как это и убедитесь, что ваш метод в Почтальон GET:

http://localhost:50684/api/album/history?type=test&id=1

надеюсь, что это Вам поможет.

+0

Вы обновили тип возврата? Как это имеет значение? –

+0

IHttpActionResult пригодится, когда вы хотите настроить определенные заголовки/свойства ответа HTTP. Например, при ответе на запрос POST вы хотите автоматически установить код состояния на 201 (созданный) и установить заголовок местоположения. –

+0

эй @ Kgn-web вы можете уточнить, что не так с моим кодом? –