Вызов метода службы WCF через браузер
У меня есть служба WCF, которая использует базовую привязку http. Как мне вызвать его операции / методы через браузер?
3 ответа
Я бы порекомендовал настроить несколько конечных точек для службы. Добавьте конечную точку, используя webHttpBinding, чтобы получить XML-версию сервиса. Если это сделано правильно, ответ, который вы получите от службы, идентичен конечной точке basicHttpBinding, но без издержек SOAP.
Кроме этого, вы не можете вызывать веб-службу SOAP напрямую из браузера, поскольку для этого требуется отправка формы. Вы можете использовать инструмент для тестирования с помощью SOAP, хотя я рекомендую Soap UI. Он написан на Java, но я стараюсь не возражать против этого.:)
Вам необходимо добавить 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, которое находится в отдельной сборке.
После добавления приведенного выше кода свойство конечной точки необходимо изменить в файле web.config, binding="webHttpBinding"
а также behaviorConfiguration="webHttp"
,