2010-12-22 12 views
6

Soy nuevo en .NET world, pero tengo que usar VStudio C# 2010 (.NET 4.0) para producir un cliente que solicita datos de un servicio web en formato SOAP Xml. He buscado aquí las respuestas pero me confundí aún más. MSDN dice que "Crear XML Web Service Clients" es heredado para .NET 4.0, es decir, WSDL es heredado. En cambio, usan "WCF", dicen. En WCF me perdí: demasiado y demasiado vago. Debe ser más simple que eso ... Y todos los ejemplos que pude encontrar en la web: todos usan WSDL, "el legado".SOAP xml client - usando Visual Studio 2010 C# - ¿cómo?

Estas son las definiciones del servicio i necesidad de utilizar con el fin de obtener los datos del servicio web:

solicitud:

POST /catalog.asmx HTTP/1.1 
Host: www.somewebsite.com 
Content-Type: text/xml; charset=utf-8 
Content-Length: length 
SOAPAction: "https://www.somewebsite.com/KeywordSearch" 

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <KeywordSearch xmlns="https://www.somewebsite.com/"> 
    <searchTerm>string</searchTerm> 
    <resultsReturned>int</resultsReturned> 
    </KeywordSearch> 
    </soap:Body> 
</soap:Envelope> 

Respuesta:

HTTP/1.1 200 OK 
Content-Type: text/xml; charset=utf-8 
Content-Length: length 

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    ...some stuff... 
    </soap:Body> 
</soap:Envelope> 

Por lo tanto, ¿Cuál es la forma correcta, o al menos la más lógica, de construir este cliente simple? ¿Qué herramientas/bibliotecas/metodologías sugerirías a los novatos (suponiendo VS 2010 C#, entorno .NET 4.0)?

+1

su información, lo que es "legado" se crean servicios web ASMX y usando "Agregar referencia web". Como marc_s sugiere, debe usar "Agregar referencia de servicio", que debería funcionar bien. –

Respuesta

5

Si tiene un WSDL/XSD para describir ese servicio, o si puede navegar hasta una URL para obtener esos metadatos, entonces WCF con basicHttpBinding probablemente sea su mejor opción. WSDL es definitivamente no "legado": si algo es heredado, entonces es ASP.NET/ASM webservices.

Dado un WSDL/XSD o una URL a la que se puede conectar, simplemente haga un Add Service Reference desde Visual Studio, y debe estar en funcionamiento llamando al servicio WCF en poco tiempo. ¡Confíe en mí! Usted no necesita necesita saber todo WCF solo para llamar a un servicio web SOAP simple ... también, con WCF 4.0, muchas cosas, especialmente la configuración, se han mejorado y simplificado enormemente.

En cuanto a resoures: está el MSDN WCF Developer Center que tiene de todo, desde los tutoriales para principiantes hasta los artículos y el código de muestra.

Además, echa un vistazo a la screen cast library up on MSDN para algunos trozos muy útiles, 10-15 minutos de información sobre casi cualquier tema relacionado con WCF que podría estar interesado.

+0

Parece lo suficientemente simple. ¡Gracias! Lo probaré. – rita

+0

funciona muy bien! ¡Gracias! – rita

+0

@rita: ¡Vea! WCF no es ese gran monstruo aterrador después de todo ;-) Solo apréndelo poco a poco, tanto de lo que necesita en este momento, y todo comienza a tener sentido :-) –