Mostrando entradas con la etiqueta webservices. Mostrar todas las entradas
Mostrando entradas con la etiqueta webservices. Mostrar todas las entradas

viernes, 12 de febrero de 2010

Escribir en un archivo de log la cadena XML que recibe un webservice

Dim httpStream As Stream = Context.Request.InputStream

Dim longitud As Integer = httpStream.Length
Dim buffer(longitud) As Byte

httpStream.Seek(0, 0)
httpStream.Read(buffer, 0, longitud)

Dim cad As String = System.Text.ASCIIEncoding.ASCII.GetString(buffer)

Dim path As String = Server.MapPath(".") + "\log2.txt"

Dim sw As StreamWriter = New StreamWriter(path, True)
sw.WriteLine("->" & Date.Now.ToString & cad)
sw.Close()


Evidentemente debes tener permiso de escritura sobre el directorio donde quieras guardar el log.

martes, 7 de octubre de 2008

Invocar webservice con HTTP GET/POST

La manera habitual de consumir un webservice .NET es mediante el protocolo SOAP. Pero hay casos en los que implementar las llamadas en dicho protocolo puede resultar bastante costoso, como por ejemplo si queremos hacer la llamada directamente desde el cliente o desde una página ASP clásica (no .NET).

La solución es invocar el webservice usando HTTP GET y POST. En el framework 1.0 esta posibilidad estaba activa por defecto, pero a partir del 1.1 está deshabilitada por cuestiones de seguridad. Así que lo primero que hay que hacer es habilitar explícitamente esta posibilidad. En el webconfig del sitio donde resida el webservice hay que añadir lo siguiente dentro del nodo <system.web>:

<webServices>
    <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
    </protocols>
</webServices>

Una vez realizado esto ya podemos comprobar que ya podemos invocar a nuestro webservice desde un navegador en cualquier cliente, tecleando la siguiente url:
http://servidor/nombreWebService.asmx/nombreMetodo?parametro1=valor1¶metro2=valor2(...)

Lo que nos aparecerá en el navegador es el chorro XML que nos devuelve el webservice.

Pues ya somos capaces de invocar a nuestro webservice usando HTTP GET y HTTP POST, pero eso lo explica mucho mejor que yo Juan Peláez en su blog.

(Gracias a Juan Carlos por el enlace)