Как создать мыльный клиент без WSDL - PullRequest
6 голосов
/ 28 января 2010

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

я знаю конечную точку веб-службы, я также знаю, как создать токен.

но я не вижу WSDL для веб-службы.

есть ли способ в C # создать мыльный клиент без файла WSDL.

Ответы [ 4 ]

5 голосов
/ 05 ноября 2010

Я убедился, что этот код, использующий класс HttpWebRequest , работает:

// Takes an input of the SOAP service URL (url) and the XML to be sent to the
// service (xml).  
public void PostXml(string url, string xml) 
{
    byte[] bytes = Encoding.UTF8.GetBytes(xml);
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    request.Method = "POST";
    request.ContentLength = bytes.Length;
    request.ContentType = "text/xml";

    using (Stream requestStream = request.GetRequestStream())
    {
       requestStream.Write(bytes, 0, bytes.Length);
    }

    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
    {
        if (response.StatusCode != HttpStatusCode.OK)
        {
            string message = String.Format("POST failed with HTTP {0}", 
                                           response.StatusCode);
            throw new ApplicationException(message);
        }
    }
}

Вам нужно будет создать соответствующий конверт SOAP и передать его как переменную "xml". Требуется некоторое чтение. Я нашел этот SOAP Tutorial полезным.

3 голосов
/ 28 января 2010

SOAP-клиент - это просто HTTP-клиент с большим количеством вещей в нем. См. класс HttpWebRequest . Затем вам нужно будет создать собственное сообщение SOAP, возможно, с использованием XML-сериализации.

0 голосов
/ 19 июля 2010

Можете ли вы попросить разработчиков веб-службы отправить вам файлы WSDL и XSD по электронной почте?Если это так, вы можете сбросить файлы в папке, а затем добавить ссылку на службу, используя WSDL на жестком диске.

0 голосов
/ 28 января 2010

Вы можете создать свой собственный сервис, предоставить ему WSDL, а затем сгенерировать клиента из этого ... своего рода длинного пути.

...