Buscar en el Blog

viernes, 22 de mayo de 2015

Cómo invocar a un servicio web SOAP usando curl

En ésta publicación explico el procedimiento para invocar un Servicio Web SOAP usando la herramienta de línea de comandos curl.

Para probarlo voy a invocar un servicio web de WebserviceX.NET para obtener la tasa de conversión de monedas (CurrencyConvertor) entre USD y EUR

1. Crear un archivo XML con el contenido de la petición (Request) que se hará al servicio web. En mi caso lo llamaré request.xml con el siguiente contenido:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.webserviceX.NET/">
   <soapenv:Header/>
   <soapenv:Body>
      <web:ConversionRate>
         <web:FromCurrency>USD</web:FromCurrency>
         <web:ToCurrency>EUR</web:ToCurrency>
      </web:ConversionRate>
   </soapenv:Body>
</soapenv:Envelope>
2. Para invocar el servicio web usando la petición XML (Request) guardada en el archivo, ejecutar el siguiente comando:
curl -H "Content-Type: text/xml; charset=utf-8" -H "SOAPAction:"  -d @request.xml -X POST http://www.webservicex.net/CurrencyConvertor.asmx -o response.xml
Sí se desea almacenar la respuesta (Response) del servicio web en un archivo usar el argumento -o seguido del nombre del archivo (response.xml)