Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/01/2012, 13:41
Avatar de sjam7
sjam7
 
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años
Puntos: 16
Sonrisa Obtener tipo de cambio con Webservice - APORTE

Habia preguntado mucho y nomas decian que hacer pero nunca sabian decirme el como, leyendo y buscando encontre como tomar estos valores desde un webservice de manera facil

A continuacion pongo mi codigo esperando les sirva para este proposito o cualquier otro que requiera el uso de webservices:
Código ASP:
Ver original
  1. <%
  2. 'Parámetros de la función
  3. 'este es el texto que se envia como peticion al webservice
  4.  
  5.             cadenaXML = "<?xml version=""1.0"" encoding=""utf-8""?>" & vbCrLf
  6. cadenaXML = cadenaXML & "<soap12:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" "
  7. cadenaXML = cadenaXML & "xmlns:xsd=""http://www.w3.org/2001/XMLSchema"""
  8. cadenaXML = cadenaXML & " xmlns:soap12=""http://www.w3.org/2003/05/soap-envelope"">" & vbCrLf
  9. cadenaXML = cadenaXML & "   <soap12:Body>" & vbCrLf
  10. cadenaXML = cadenaXML & "   <ConversionRate xmlns=""http://www.webserviceX.NET/"">" & vbCrLf
  11. cadenaXML = cadenaXML & "  <FromCurrency>USD</FromCurrency>" & vbCrLf
  12. cadenaXML = cadenaXML & "  <ToCurrency>MXN</ToCurrency>" & vbCrLf
  13. cadenaXML = cadenaXML & " </ConversionRate>" & vbCrLf
  14. cadenaXML = cadenaXML & "</soap12:Body>" & vbCrLf
  15. cadenaXML = cadenaXML & "</soap12:Envelope>" & vbCrLf
  16.  
  17. Function LeeXml(responseText)
  18.  Dim xmlResponse
  19.  Dim xnodelist
  20.  Dim indicadores
  21.  
  22.  indicadores = ""
  23.  If Len(responseText) <> 0 Then
  24.  
  25.   Set xmlResponse = CreateObject("MSXML2.DOMDocument")
  26.   xmlResponse.async = false
  27.   xmlResponse.loadXml responseText
  28.   Set xnodelist = xmlResponse.documentElement.selectNodes("/soap12:Envelope/soap12:Body/ConversionRate/ConversionRateResponse")
  29.  
  30. 'asignamos el valor resultante a la variable "valor"
  31.     valor = formatcurrency(cdbl(xmlResponse.getElementsByTagName("ConversionRateResult").Item(0).Text),2)
  32.  else
  33.     valor = "NADA QUE LEER"
  34.  End If
  35.  
  36.  LeeXml = valor
  37. End Function
  38.  
  39. 'funcion para el llamado al webservice
  40. Function InvocarWebService (strSoap, strSOAPAction, strURL, ByRef xmlResponse)
  41.     Dim xmlhttp
  42.     Dim blnSuccess
  43.  
  44.   Set xmlhttp = server.CreateObject("WinHttp.WinHttpRequest.5.1")
  45.   xmlhttp.Open "POST", strURL
  46.   xmlhttp.setRequestHeader "Man", "POST " & strURL & " HTTP/1.1"
  47.   xmlhttp.setRequestHeader "Content-Type", "application/soap+xml; charset=utf-8"
  48.         call xmlhttp.send(strSoap)
  49.  
  50.         If xmlhttp.Status = 200 Then
  51.             blnSuccess = True
  52.         Else
  53.            blnSuccess = False
  54.         End If
  55.  
  56.   xmlResponse = xmlhttp.ResponseText
  57.         InvocarWebService = blnSuccess
  58.         Set xmlhttp = Nothing
  59. End Function
  60.  
  61. strSOAPAction = "http://www.webserviceX.NET/ConversionRate"
  62. %>
  63. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  64. <html>
  65. <head>
  66. <title>DOLAR - PESO</title>
  67. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  68. </head>
  69. <body>
  70. <%
  71. Dim xmlResponse
  72. If InvocarWebService (cadenaXML, strSOAPAction, "http://www.webservicex.net/CurrencyConvertor.asmx?WSDL", xmlResponse) Then
  73.      Response.Write(LeeXml(xmlResponse))
  74. Else
  75.     Response.Write "*** Ha ocurrido un Error ***" & "<br>" & xmlResponse
  76. End If
  77. Set xmlResponse = Nothing
  78. %>
  79. </body>
  80. </html>

Espero les sirva

Pueden ver el resultado en http://www.creandowebs.com/lab/ws.asp
Y otras opciones para tomar el valor del dolar en: http://javimata.blogspot.com/