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 enviándole 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 la llamada por el método POST de la variable XML ( 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 algun día 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 Responses

  1. Edson Rocha Says:

    Vou escrever em Português.
    Obrigado por este artigo. Ele ajudou-me muito em meu trabalho. Consegui enviar o arquivo xml graças a este fonte, postado por você.
    Abraços do brasileiro Edson Rocha.

  2. Leo Says:

    Thanks!
    This article is very helpful for me to slove my problem in using serverxmlhttp.open method.
    Thanks in advance!

    Leo

  3. Antonio Gago Says:

    Gracias.

    un trabajo excelente. Me ayudó mucho para una intranet.

  4. kenavik Says:

    Me alegro que os sea útil la información.
    saludos,

    kenavik

Escribir un comentario

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.