none
Consumir Web Service Banxico RRS feed

  • Pregunta

  • Tengo una Web Aplicaction que desarrolle en Visual Studio 2008 y C#. Necesito consumir un WEB SERVICE para obtener el valor cambiario del Peso Mexicano contra el Dolar de EUA.

    El web service que tengo que consumir es el del Banco de Mexico http://www.banxico.org.mx/DgieWSWeb/DgieWS?WSDL

    Ya agregue  la referencia del web service en mi proyecto con el nombre Banxico

    El asunto es que me estanque no se que mas me falta para que el boton button1 obtenga el tipo de cambio y lo coloque en un textbox que se llama TipoCambio.

    Lo estoy tratando de implementar un un proyecto web WPF donde estoy probando varias cosas que me solicitan para la aplicacion.

    De ser posible no solo debo de poder consultar el tipo de cambio de hoy si no tambien el de cualquier otro dia en el pasado.

    miércoles, 29 de febrero de 2012 22:57

Respuestas

  • Gracias Leandro como siempre muy participativo y solidario ofreciendo tu ayuda para todos los del foro en mas de una ocacion has contestado mis dudas, nuevamente gracias.

    Resulta que encontre varias propuestas para poder atravesar el proxy de la intranet y tener salida a internet para poder consumir el web service. Pero la que me sirvio la tome del foro

    http://social.msdn.microsoft.com/Forums/es/netfxwebes/thread/b63e09e8-dd72-4508-a536-2b234c1f1a90

    Y quien publico la respuesta fue J Antonio 09

    A continuacion pongo el codigo que me soluciono el problema por si le es de utilidad a alguien mas

    Dim myProxy As New WebProxy("Proxy", 80) myProxy.Credentials = New NetworkCredential("Usuario", "contraseña") Dim httpBanxico As HttpWebRequest = CType(WebRequest.Create("http://www.banxico.org.mx/DgieWSWeb/DgieWS?WSDL"), HttpWebRequest) httpBanxico.Proxy = myProxy httpBanxico.Credentials = myProxy.Credentials WebRequest.DefaultWebProxy = httpBanxico.Proxy

            Dim TipoCambio As New WSBanxico.DgieWSPortClient
            Dim strTipoCambio As String
            strTipoCambio = TipoCambio.tiposDeCambioBanxico()
            TxtbTipoCambio.Text = strTipoCambio

    Para que el cotigo funcione hay que agregar

    Imports WsTipoCambio = WSBanxico

    Imports System.Net



    • Marcado como respuesta aelp jueves, 1 de marzo de 2012 23:56
    • Editado aelp viernes, 2 de marzo de 2012 0:02
    jueves, 1 de marzo de 2012 23:56

Todas las respuestas

  • hola

    y si en el codigo del control creas la instancia del proxy del servicio

    o sea algo como ser

    Banxico svr = new Banxico();

    var result = svr.NombreMetodo();

    puede que enobre de la clase difiera pero seria por este lado la solucion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 1 de marzo de 2012 1:19
  • Ya probe de esa manera pero no me reconoce el servicio no se si el servicio no estara funcionando bien o si lo agregue mal

    jueves, 1 de marzo de 2012 14:34
  • veo que defines

    using Banxico;

    pero que sucede si haces en el codigo dentro del button_Click

    Banxico.xx

    despues del punto que clases muestra ? porque esas son las clases que deberias instanciar


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 1 de marzo de 2012 16:00
  • Bueno creo que avance un poco pero ahora tengo otro problema. No se que problema tendar mi visual studio que cambie de WPF con lenguaje C# a un proyecto web con lenguaje de VisualBasic.

    Tambien no veo que diferencia habra entre Agregar Referencia Web y Agregar Referencia de Servicio del menu contextual del explorador de proyectos.

    Como sea ahora tengo el siguiente problema: Error en el servidor remoto: (407) Se requiere autorización del proxy



    • Editado aelp jueves, 1 de marzo de 2012 17:55
    jueves, 1 de marzo de 2012 17:49
  • Investigando vi que es por que no tengo salida a internet directa si no que es por medio de un proxy y tengo que enviar las credenciales del proxy para poder salir a internet.

    encontre el siguiente codigo pero no encuentro como implementarlo       

    Dim myProxy As New WebProxy("Proxy", 80)
    myProxy.Credentials = New NetworkCredential("Usuario", "contraseña", "Dominio")

    jueves, 1 de marzo de 2012 17:58
  • Revisando mi web.config encontre lo siguiente

                    <binding name="DgieWSPortSoapBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
                        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
                        <security mode="None">
                            <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
                            <message clientCredentialType="UserName" algorithmSuite="Default"/>
                        </security>
                    </binding>

    Sera que aqui es donde tengo que agregar el proxy???? Como lo haria si es aqui

    jueves, 1 de marzo de 2012 18:19
  • Gracias Leandro como siempre muy participativo y solidario ofreciendo tu ayuda para todos los del foro en mas de una ocacion has contestado mis dudas, nuevamente gracias.

    Resulta que encontre varias propuestas para poder atravesar el proxy de la intranet y tener salida a internet para poder consumir el web service. Pero la que me sirvio la tome del foro

    http://social.msdn.microsoft.com/Forums/es/netfxwebes/thread/b63e09e8-dd72-4508-a536-2b234c1f1a90

    Y quien publico la respuesta fue J Antonio 09

    A continuacion pongo el codigo que me soluciono el problema por si le es de utilidad a alguien mas

    Dim myProxy As New WebProxy("Proxy", 80) myProxy.Credentials = New NetworkCredential("Usuario", "contraseña") Dim httpBanxico As HttpWebRequest = CType(WebRequest.Create("http://www.banxico.org.mx/DgieWSWeb/DgieWS?WSDL"), HttpWebRequest) httpBanxico.Proxy = myProxy httpBanxico.Credentials = myProxy.Credentials WebRequest.DefaultWebProxy = httpBanxico.Proxy

            Dim TipoCambio As New WSBanxico.DgieWSPortClient
            Dim strTipoCambio As String
            strTipoCambio = TipoCambio.tiposDeCambioBanxico()
            TxtbTipoCambio.Text = strTipoCambio

    Para que el cotigo funcione hay que agregar

    Imports WsTipoCambio = WSBanxico

    Imports System.Net



    • Marcado como respuesta aelp jueves, 1 de marzo de 2012 23:56
    • Editado aelp viernes, 2 de marzo de 2012 0:02
    jueves, 1 de marzo de 2012 23:56
  • Tengo una Web Aplicaction que desarrolle en Visual Studio 2008 y C#. Necesito consumir un WEB SERVICE para obtener el valor cambiario del Peso Mexicano contra el Dolar de EUA.

    El web service que tengo que consumir es el del Banco de Mexico http://www.banxico.org.mx/DgieWSWeb/DgieWS?WSDL

    Ya agregue  la referencia del web service en mi proyecto con el nombre Banxico

    El asunto es que me estanque no se que mas me falta para que el boton button1 obtenga el tipo de cambio y lo coloque en un textbox que se llama TipoCambio.

    Lo estoy tratando de implementar un un proyecto web WPF donde estoy probando varias cosas que me solicitan para la aplicacion.

    De ser posible no solo debo de poder consultar el tipo de cambio de hoy si no tambien el de cualquier otro dia en el pasado.

    Hola estab cehcando tu post....

    Podrias usar esto

    Tipocambio.TipoCambio.DgieWSPortClient TC = new Tipocambio.TipoCambio.DgieWSPortClient();
                textBox1.Text = TC.tiposDeCambioBanxico();

    con este te da el tipo de cambio del dia

    martes, 15 de octubre de 2013 18:38
  • Yo se que ya son 3 años despues, pero, esta pregunta sigue siendo valida.

    yo lo resolvi asi:

    Imports System.ServiceModel

            Dim binding As New BasicHttpBinding
            Dim endpointAdress As New EndpointAddress("http://www.banxico.org.mx/DgieWSWeb/DgieWS?WSDL")
            Dim sclient As New WSBanxico.DgieWSPortClient(binding, endpointAdress)
            Dim SimonLoco As String
            SimonLoco = sclient.tiposDeCambioBanxico()

    me regresa un XML y funciona a la perfeccion

    martes, 3 de noviembre de 2015 0:23
  • Hola

    Otra opción para consumir información del Banco de México es:

    https://www.banxico.org.mx/SieAPIRest

    martes, 25 de julio de 2017 15:38