Попытка создать клиент C # (будет разработан как служба Windows), который отправляет запросы SOAP веб-службе (и получает результаты).
Из этого вопроса я увидел этот код:
protected virtual WebRequest CreateRequest(ISoapMessage soapMessage)
{
var wr = WebRequest.Create(soapMessage.Uri);
wr.ContentType = "text/xml;charset=utf-8";
wr.ContentLength = soapMessage.ContentXml.Length;
wr.Headers.Add("SOAPAction", soapMessage.SoapAction);
wr.Credentials = soapMessage.Credentials;
wr.Method = "POST";
wr.GetRequestStream().Write(Encoding.UTF8.GetBytes(soapMessage.ContentXml), 0, soapMessage.ContentXml.Length);
return wr;
}
public interface ISoapMessage
{
string Uri { get; }
string ContentXml { get; }
string SoapAction { get; }
ICredentials Credentials { get; }
}
Выглядит хорошо, кто-нибудь знает, как его использовать, и если это лучшая практика?
c#
soap
webservice-client
База данных
источник
источник
Я получил это простое решение здесь :
Отправка SOAP-запроса и получение ответа в .NET 4.0 C # без использования классов WSDL или прокси:
источник
webRequest.Headers.Add("SOAPAction", "http://tempuri.org/.....");
Проверьте действие SOAP, которое находится в SoapUI, и используйте его.Рекомендуется ссылаться на WSDL и использовать его как ссылку на веб-сервис. Это проще и работает лучше, но если у вас нет WSDL, определения XSD - хороший кусок кода.
источник
Я думаю, что есть более простой способ:
источник
Я написал более общий вспомогательный класс, который принимает словарь на основе строк пользовательских параметров, так что они могут быть установлены вызывающей стороной без необходимости их жесткого кодирования. Само собой разумеется, что вы должны использовать такой метод только в том случае, если вы хотите (или нуждаетесь) вручную запустить веб-службу на основе SOAP: в большинстве распространенных сценариев рекомендуемый подход заключается в использовании WSDL веб-службы вместе с Add Service Reference Visual Studio особенность вместо
Для получения дополнительной информации и деталей относительно этого класса вы также можете прочитать этот пост в моем блоге.
источник
Итак, это мой последний код после двухдневного поиска в Google о том, как добавить пространство имен и сделать запрос на мыло вместе с конвертом SOAP без добавления прокси / Ссылка на службу
источник
Вызовите веб-сервис SOAP в c #
источник
new UpdatedOutlookServiceReferenceAPI.OutlookServiceSoapClient()
?