Articoli Referenze Script FAQ Downloads ASP E-Commerce con ASP Menu Javascript Ricette Cocktail Registrazione domini Area Aziende



Introduzione all'oggetto XMLHTTP

Home + Articoli + XML + Articolo # 98
Autore: Francesco Camarlinghi

Concesso in esclusiva a ASP Center. Vietata la riproduzione.


Ampliato da Luca Ruggiero.

Abbiamo visto in una serie di articoli come ASP può interagire con XML basandosi sull'oggetto XMLDOM. Esistono diverse altre strade che si possono sfruttare per interagire con XML lato server: una di queste è rappresentata dall'oggetto XMLHTTP della Microsoft, con cui è possibile eseguire richieste HTTP (ad esempio il recupero di file remoti).

XMLHTTP dispone di una nutrita schiera di metodi e proprietà: in questo articolo esamineremo le principali, nonchè più utilizzate. Iniziamo col dire che una nuova istanza dell'oggetto XMLHTTP si dichiara come un normale oggetto ActiveX residente sul server, quindi utilizzeremo la dichiarazione
Set richiesta = Server.CreateObject("Microsoft.XMLHTTP")
La dicitura Microsoft.XMLHTTP rappresenta la classe di riferimento standard dell'oggetto XMLHTTP; il più recente rilascio fa riferimento alla classe (dicitura) Msxml2.XMLHTTP.4.0, che utilizzeremo per implementare gli esempi di questo articolo.

Per iniziare a comprendere il funzionamento dell'oggetto in questione, è necessario fare un primo semplice esempio: creiamo un file ASP che richiama un file XML remoto
<%@LANGUAGE = VBScript%>
<%
    ' Istanzio l'oggetto XMLHTTP
    Dim richiesta
    Set richiesta = Server.CreateObject("Msxml2.XMLHTTP.4.0")

    ' Apro l'oggetto ed invio la richiesta
    richiesta.Open "GET", "http://www.sito.ext/esempio.xml", False
    richiesta.Send

    ' Stampo a video il contenuto del file Xml remoto
    Response.Write richiesta.responseXML.xml

    ' Un po di pulizia...
    Set richiesta = Nothing
%>
Il codice è piuttosto snello e semplice ed i commenti sono abbastanza esplicativi; non preoccupatevi dunque del come XMLHTTP riesca a reperire il file XML remoto, o di come si comportino i metodi e le proprietà associati; l'oggetto del seguito di questo articolo tenterà di far luce su questi aspetti.

Analizziamo dunque in maniera schematica i metodi e le proprietà di XMLHTTP.

Metodi

Abort()

Cancella l'attuale richiesta HTTP
richiesta.Abort()
getAllResponseHeaders()

Riceve tutti gli header HTTP
Response.Write richiesta.getAllResponseHeaders
getResponseHeader()

Riceve il contenuto di uno specifico header
Response.Write richiesta.getResponseHeader("Content-Length")
Open()

Apre la richiesta HTTP specificando il metodo da utilizzare (GET, POST, PUT, PROPFIND), l'indirizzo del file remoto, asincronicità ed altre informazioni (opzionali) come username e password
Dim u, p
u = "lukeonweb"
p = "prova"
richiesta.Open "GET", "http://www.sito.ext/esempio.xml", False, u, p
Send()

Invia la richiesta HTTP
richiesta.Send
setRequestHeader()

Specifica l'header HTTP della richiesta
richiesta.setRequestHeader("User-Agent", "IlMioBrowserPersonale")
Proprietà

readyState

Restituisce lo stato della richiesta
Response.Write richiesta.readyState
responseStream

Restituice il corpo della risposta come IStream. L'IStream consiste in un flusso grezzo di dati, come cioè il server li riceve direttamente. A seconda di come il server remoto li ha inviati, i dati possono essere binary-encoded
Response.Write richiesta.responseStream
responseText

Restituice il corpo della risposta come stringa
Response.Write richiesta.responseText
responseXML

Restituisce il corpo della risposta già elaborato da MSXML
Response.Write richiesta.responseXML
status

Restituisce il codice HTTP restituito dalla richiesta
Response.Write richiesta.status
statusText

Restituisce il testo restituito dalla richiesta HTTP
Response.Write richiesta.statusText
© 2008 ASP Center di Luca Ruggiero - P. IVA 05564851219 - Disclaimer | Privacy | Pubblicità | Supportaci | Staff | Contatti
  Appunti PHP | Giornale Webmaster | Mr.Webmaster | Download | DevSpy.com | ASPCode.it | ClaudioGarau.it | Webmaster Facile | Come Faccio | AlVerde.net | CodiceFacile.it | I Programmatori | By Luciani | VoiceXML Italian User Group | Giochi | Extro Web Site | Morpheus Web | AG Web Solutions | Net-Free | PC Sicuro | PC Self | Tutorial Web | Dablones