2015-11-30 2 views
0

У нас есть проект библиотеки классов и папка контроллера. В этой папке у нас есть класс TravellerController.cs, и у него есть множество методов, добавленных с помощью [HttpGet] или [HttpPost]. Я разместил это в IIS.Как мне позвонить в Restful Service

Когда я пытаюсь сделать webRequest, я всегда получаю ошибку 404. Я думаю, это связано с тем, что я называю это в форме

Где GetProductCode - это метод в классе. Я думаю, что проблема в том, что на этом адресе нет реальной веб-страницы, поэтому она терпит неудачу. Как следует обращаться к методу спокойным способом.

+0

ur url работает в браузере? –

+0

Можете ли вы показать метод контроллера, который вы пытаетесь ударить? –

+0

Нет, поскольку я сказал, что на этой странице нет страницы, все это скомпилировано в Dll. Физический путь при просмотре через IIS ищет файл под названием Traveler, которого нет. Переименование в TravellerContoller не будет работать по той же причине, что и его компиляция в dll. – bilpor

ответ

0

Прежде всего, проверьте, что ваша служба API работает правильно.

По тому, что вы упомянули, путь http://localhost:80/MyClassLibrary/Traveller/GetProductCode/<product>/<subProduct> не подходит. Вы уверены, что вам нужен /Traveller/ на вашем пути?

Кроме того, убедитесь, что вы передаете правильные аргументы своей службе, и вы запрашиваете правильный порт.

Когда вы управляете получением контента, используйте синтаксический анализатор, например, библиотеку Json.NET (если используется формат JSON), чтобы проанализировать содержимое и использовать его.

+0

Привет, Ник, вот что я не уверен. В стандартном коде я создавал экземпляр класса Traveler, а затем вызывал метод. потому что я использую WebApi, я бы предположил, что класс Traveler должен быть частью адреса – bilpor

+0

В вашем случае я бы проверил, где задать пути вызовов API. –

+0

Я думаю, что проблема связана с IIS. Я создал новый сайт и дал ему порт 8060, так что номер порта уникален, я установил физический путь, чтобы указать на мой каталог BIN. Я могу увидеть MyClassLibrary.dll, и я изменил свой вызов на 'http: // localhost: 8060/api/MyClassLibrary/GetProductCode? product = myProduct & SubProduct = mySubProduct' Когда я просматриваю и это ошибки, часть физического пути показывает/api/заставляя его выглядеть так, как будто он ищет каталог под названием api, который, конечно, не существует – bilpor