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.
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.
Thanks!
This article is very helpful for me to slove my problem in using serverxmlhttp.open method.
Thanks in advance!
Leo
Gracias.
un trabajo excelente. Me ayudo mucho para una intranet.
Me alegro que os sea útil
saludos,
kenavik