ASP:Enviar XML a un CGI con XMLHTTP
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 »


