2010-01-27 18 views
6

necesito visitar un servicio web seguro, cada solicitud en el encabezado debe llevar un token.Cómo crear un cliente de jabón sin WSDL

conozco el punto final del servicio web, también sé cómo crear el token.

pero no puedo ver el WSDL para el servicio web.

hay una forma en C# para crear un cliente de soap sin el archivo WSDL.

+0

Posible duplicado: http://stackoverflow.com/questions/278037/soap-client-inc-c-without-access-to-a-wsdl-file –

Respuesta

5

He comprobado que este código, que utiliza el HttpWebRequest class, funciona:

// 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); 
     } 
    } 
} 

Usted tendrá que crear el sobre SOAP adecuada y pasar esa sesión como el "xml" variable. Toma algo de lectura. Encontré esto SOAP Tutorial para ser útil.

3

Un cliente SOAP es simplemente un cliente HTTP con más cosas. Vea el HttpWebRequest class. Luego tendrá que crear su propio mensaje SOAP, tal vez usando la Serialización XML.

0

Puede crear su propio servicio, exponerlo para tener un WSDL y luego generar el cliente a partir de ese ... largo camino.

0

¿Puede solicitar a los desarrolladores del servicio web que le envíen los archivos WSDL y XSD por correo electrónico? De ser así, puede volcar los archivos en una carpeta y luego agregar una referencia de servicio usando WSDL en su disco duro.

Cuestiones relacionadas