Как вызвать веб-сервис программно в asp.net
Как вызвать webservice программно в asp.net без использования веб-ссылки?
Мой URL-адрес webservice продолжает меняться. Следовательно, мне нужно захватить URL-адрес во время выполнения и отобразить результаты.
Пожалуйста, совет.
Ответы
Ответ 1
Вы можете изменить URL-адрес веб-ссылки во время выполнения (при условии, что на новом адресе размещен сервис с той же схемой, с которой вы первоначально использовали для создания ссылки):
MyWebService ms = new MyWebService();
ms.Url = "http://example.com/webservice.asmx";
ms.MyWebMethod();
Веб-ссылки - это, безусловно, путь, в то время как классы, созданные веб-ссылкой, обычно довольно тяжелые, все, что сильно печатает, делает его хорошо стоящим.
Ответ 2
вам необходимо выполнить следующие шаги.
PreReq:
Прежде всего, вы знаете URL-адрес веб-службы.
Решение:
используйте wsdl.exe, чтобы создать прокси-класс и скомпилировать его.
wsdl /out:myProxyClass.cs http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL
(имеются другие доступные ключи для wsdl. Например, для генерации VB класса, вам нужно добавить переключатель /Язык: VB)
После создания прокси-класса вы можете легко использовать код.
MyProxyClass objService = new MyProxyClass();
DateTime time = objService.GetServerTime(); //Suppose service has method getServerTime
Ответ 3
Вы можете указать URL конечной точки как часть конструктора вашего прокси-класса на стороне клиента.
Если вам не нужно указывать его во время выполнения, его также можно установить в файле web.config
.
Ответ 4
Где вы пытаетесь вызвать службу и где находится служебный файл?
Если служба находится на том же сайте. Почему бы просто не создать экземпляр имени класса из службы. Или просто создайте отдельный класс и используйте интерфейс