ASP:Enviar XML a un CGI con XMLHTTP

Marzo 29th, 2007 by kenavik

Os dejo un ejemplo de como enviar un XML por el método POST a un CGI de un servidor remoto usando el objeto XMLHTTP de ASP.
En este ejemplo enví­amos un XML con los datos de login para que nos devuelva otro XML como respuesta. En este ejemplo el CGI necesita recibir una variable llamada XML con el contenido del XML que hemos generado.

En este ejemplo supongamos que tenemos que mandarle al CGI los datos de acceso de algún servicio y que luego el CGI nos devolvera un XML como respuesta con información de nuestra cuenta.

Primero montamos el XML.

xml = ""
xml = "<?xml version=""1.0"" encoding=""iso-8859-1""?>"
xml =  xml & "<test>"
xml =  xml & "<user>xxxx</user> "
xml =  xml & "<password>xxxxx</password> "
xml =  xml & "</test>"

Una vez montado el XML declaramos el objeto XMLHTTP y sus propiedades.

Response.ContentType = "text/html"
Set objHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP")

Aquí­ deberemos poner la url del CGI remoto que vamos a usar.

url = "http://url+xxxx.cgi"
body = "xml=" & xml
username = ""
password = ""

Abrimos el socket envíandole la URL donde esta el CGI remoto.

objHTTP.open "POST", url, False, username, password
objHTTP.setRequestHeader "Content-Type","application/x-www-form-urlencoded"

Hacemos un send del XML que queremos enviar. Es importante tener en cuenta que cuando enví­amos un XML por POST usando el objeto XMLHTTP la variable body debe contener lo siguiente :

nombre_variable_que_necesita_el_CGI_para_el__POST = XML Generado

Esto debemos hacerlo así­ ya que cuando el CGI hace el request de la variables XML vía POST ( en esta caso el CGI le llama XML puede ser que otro CGI use otro nombre), si no encuentra la variable XML el CGI no se procesara correctamente.

objHTTP.send body
auxXML = objhttp.responseText
set objHTTP = nothing

Este ejemplo lo he usado en el trabajo esta semana para poder enviar SMS desde una web y gestionar los SMS de respuesta y quería postearlo en el blog por si alguién se encuentra en la misma situación.

UPDATE 31/03/2007

Navegando por internet he encontrado la web de Alex Hopmann que segun parece es el padre de la función XMLHTTP y explica la historia de la misma.

Posted in ASP, XMLHTTP | 4 Comments »