Buenos días.
Tengo problemas para recibir la respuesta de un Web Service.
El servicio está escrito en Python, y el cliente que lo va a consumir lo estoy escribiendo en Visual Basic .Net
Otros están consumiendo el Web Service sin problema. Digo esto únicamente para clarificar que el problema lo tengo yo escribiendo el cliente.
El principal problema es que, aparentemente, no recibo la respuesta del Web service. El objeto retornado en mi llamada al servicio es Nothing.
Pero haciendo uso de una aplicación tipo sniffer (Fiddler) para capturar el tráfico HTTP, puedo capturar tanto la llamada como la respuesta del servicio, y puedo ver que, efectivamente, todo es correcto. O sea, puedo ver que mi llamada es lanzada correctamente, y lo más importante, que estoy recibiendo una respuesta correcta.
En otras palabras, la respuesta del servicio vuelve de forma correcta, pero en algún punto de la clase proxy o en el momento de parsear la respuesta se da algún error, y por esa razón devuelve Nothing, en vez de devolver el tipo de objeto que corresponda.
Entonces, les dejo aquí la respuesta SOAP que recibo, que puedo capturarla haciendo uso de Fiddler, para ver si alguien puede ver cualquier cosa extraña:
Código XML:
Ver original<SOAP-ENV:Envelope
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ZSI="http://www.zolera.com/schemas/ZSI/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Header></SOAP-ENV:Header>
<SOAP-ENV:Body>
<libroVendidoResponse SOAP-ENC:arrayType="xsd:anyType[1]" xsi:type="SOAP-ENC:Array">
<element id="oef5eaf8" xsi:type="xsd:string">http://www.urlprueba.com</element>
</libroVendidoResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Finalmente, también he estado revisando este enlace:
http://www.primordialcode.com/index....urn-null-issue
Aparentemente, el problema en ese caso es que en la clase proxy viene especificado un namespace, y en cambio, la respuesta SOAP no especifica ningún namespace, y por lo tanto, no coinciden.
La solución es modificar la clase proxy, dejando el namespace como una cadena vacía, tal y como está en la respuesta SOAP, y eso debería resolver el problema.
Pero pienso que en mi caso debe ser algo diferente porqué, en la respuesta SOAP, no veo ningún namespace especificado en el método libroVendidoResponse, si no que veo únicamente esto:
Código XML:
Ver original<libroVendidoResponse SOAP-ENC:arrayType="xsd:anyType[1]" xsi:type="SOAP-ENC:Array">
Y no veo cómo puedo cambiar mi clase proxy para que deje de devolver Nothing, y devuelva los tipos de objeto correctos.
Muchas gracias por vuestra ayuda.
Saludos.