Вызов метода службы WCF через браузер - PullRequest
29 голосов
/ 29 апреля 2009

У меня есть служба WCF, которая использует базовую привязку http. Как мне вызвать его операции / методы через браузер?

Ответы [ 3 ]

36 голосов
/ 15 июня 2009

Вам необходимо добавить WebGetAttribute к вашему методу, как показано в следующем примере

[OperationContract]
[WebGet(UriTemplate = "/placesList/{userId}",
ResponseFormat = WebMessageFormat.Xml)]
List<Places> GetAllPlacesForUser(String userId)
{
  string xml = "";
  // build xml here
  return xml;
}

Теперь в браузере вы можете вызвать метод, подобный этому

http://localhost:8085/GeoPlacesDataService/placesList/10
где 10 - это параметр userId.

Примечание: Чтобы добавить WebGetAttribute, необходимо сослаться на пространство имен System.ServiceModel.Web, которое находится в отдельной сборке

10 голосов
/ 29 апреля 2009

Я бы рекомендовал настроить несколько конечных точек для службы. Добавьте конечную точку, используя webHttpBinding, чтобы получить XML-версию сервиса. Если это сделано правильно, ответ, который вы получите от службы, идентичен конечной точке basicHttpBinding, но без издержек SOAP.

Кроме этого, вы не можете вызывать веб-службу SOAP напрямую из браузера, поскольку для этого требуется отправка формы. Вы можете использовать инструмент для тестирования с использованием SOAP, хотя я рекомендую Soap UI . Он написан на Java, но я стараюсь не возражать против этого. :)

6 голосов
/ 02 сентября 2011

После добавления приведенного выше кода свойство конечной точки необходимо изменить в web.config , binding="webHttpBinding" и behaviorConfiguration="webHttp".

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