Simulare una richiesta via POST con XMLHTTP

Daniele Bochicchio

di , in XML, Tips,

Il metodo POST è certamente quello più "sicuro" da utilizzare per inviare informazioni ad una pagina web.
L'esempio di oggi permette di inviare una richiesta, da codice, ad una pagina remota, utilizzando proprio questo metodo.
Lo script è ampiamente commentato ed utilizza il parser XML 3.0, ma con piccoli aggiustamenti può essere riutilizzato anche con la versione 2.
Il file risposta.asp è un semplice script, come ad esempio quello contenuto nel #97 e si limita a restituire alla pagina chiamante i valori inviati con il metodo POST.

<%

' stringa da inviare
strPost = "saluto=ciao&nome=Daniele Bochicchio"

' la rendiamo URL-compatibile
strPost = Server.URLEncode(strPost)

' pagina da richiamare
url = "http://localhost/risposta.asp"

' usiamo l'oggetto XMLHTTP
Set XMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
XMLHTTP.open "POST", url, false

' headers da impostare
' il metodo POST ha bisogno di questo content-type
XMLHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

' se vogliamo dirgli da dove veniamo...
XMLHTTP.setRequestHeader "HTTP_REFERER", "http://localhost/"

' inviamo la richiesta
XMLHTTP.send (strPost)

' codice di risposta del server
status = CInt(XMLHTTP.status)

' Se lo stato è 200, è ok
if status = 200 then
  Response.write (XMLHTTP.responseText)
else
  Response.write "<P>Errore: " & status
end if

set XMLHTTP = Nothing

%>

Lo script #97
http://www.aspitalia.com/liste/usag/script.asp?ID=97

Un altro esempio di utilizzo dell'oggetto XMLHTTP:
http://www.aspitalia.com/liste/usag/script.asp?ID=150