Introduzione all'oggetto XMLHTTP

Corso XML
Creazione di strutture XML, XSL ed altri linguaggi eXtensible

Scritto da Francesco Camarlinghi nella sezione Xml

Con questo articolo iniziamo ad analizzare come Xml è in grado di interagire con un'applicazione lato server utilizzando Asp.
Ci sono diverse strade che si possono sfruttare per interagire con Xml dal lato server, una di queste è rappresentata dall'oggetto XMLHTTP della Microsoft, con cui è possibile eseguire richieste http (ad esempio interrogare 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

var richiesta = new ActiveXObject("Microsoft.XMLHTTP");
oppure
var 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 = JScript%>
<%
   // Istanzio l'oggetto XMLHTTP
   var richiesta = new ActiveXObject("Msxml2.XMLHTTP.4.0");

   // Apro l'oggetto ed invio la richiesta
   richiesta.Open("GET", "http://www.nomesito.it/esempio.xml", false);
   richiesta.Send();

   // Stampo a video il contenuto del file Xml remoto
   Response.Write(richiesta.responseXML.xml);
%>
Il codice è alquanto snello e semplice ed i commenti sono abbatanza esplicativi, non preoccuparevi dunque del come XMLHTTP riesca a reperire il file Xml remoto, o di come si comportino i metodi e le proprietà associate, 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 user e password
    richiesta.Open("GET", "http://www.nomesito.it/esempio.xml", false, "lukeonweb", "prova");
  • 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);

I più cliccati della sezione Xml

:: Estrarre dati da un file Xml con Javascript (32.706)

:: Un motore di ricerca con Xml e Javascript (25.654)

:: Applicare un foglio di stile Xsl ad un file Xml (21.674)

:: Leggere un file Xml con l'oggetto XMLDOM (17.976)

:: Scorrere i record di un file Xml con Javascript (14.214)

:: Leggere un Feed RSS con PHP (14.214)

:: Leggere un file Xml con Php (12.715)

:: Un sistema di login in Javascript ed Xml (11.808)

:: Inserire dati in un file Xml con l'oggetto XMLDOM (10.796)

:: Applicare un foglio di stile Css ad un file Xml (10.443)

IN EVIDENZA
DOWNLOAD