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 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 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 XMLHTTP.

Leave a comment

4 Comments.

  1. Edson Rocha

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

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

    Leo

  3. Gracias.

    un trabajo excelente. Me ayudo mucho para una intranet.

  4. Me alegro que os sea útil ;)
    saludos,

    kenavik

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*


Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>