les objets ServerXMLHTTP et IServerXMLHTTPRequest fournissent des méthodes et des propriétés qui permet d'établir une connexion HTTP entre les fichiers ou les objets dur différents serveurs Web.
Set Objet_ServerXMLHTTP = _ Server.CreateObject("MSXML2.ServerXMLHTTP") Set Objet_ServerXMLHTTP = _ Server.CreateObject("afba6b42-5692-48ea-8141-dc517dcf0ef1") |
L'objet ServerXMLHTTP offre des fonctionnalités similaires à celles de l'objet XMLHTTP. Toutefois, l'objet ServerXMLHTTP ne compte pas sur le contrôle WinInet pour l'accès HTTP vers des documents XML distants.
L'objet ServerXMLHTTP utilise une nouvelle zone client HTTP. Conçu pour les applications serveurs, ce sous-ensemble de sécurité du serveur de WinInet procure une meilleure fiabilité et sécurité de la zone client HTTP.
L'objet ServerXMLHTTP est la plupart du temps utilisé pour :
Il est possible d'utiliser l'objet ServerXMLHTTP, soit indirectement en employant la méthode setProperty de l'objet DOMDocument, soit directement en employant l'objet ServerXMLHTTP lui-même.
L'utilisation indirecte de l'objet ServerXMLHTTP s'effectue par l'intermédiaire de la propriété setProperty de l'objet DOMDocument de la façon suivante :
Dim Objet_Document Set Objet_Document = _ Server.CreateObject("MSXML2.DOMDocument") Objet_Document.async = false Objet_Document.setProperty("ServerHTTPRequest", true) Objet_Document.load("http://nom-serveur/reponse.asp")
Il est nécessaire d'utiliser la méthode setProperty de l'objet DOMDocument pour fixer l'indicateur de la propriété ServerHTTPRequest, lequel indique que l'analyseur doit utiliser la sécurité du serveur de l'objet ServerXMLHTTP, à la place de l'objet de DOMDocument, pour charger simultanément un document XML depuis un serveur.
Comme avec tous les indicateurs de propriété, la propriété ServerHTTPRequest doit être fixée avant l'appel de la méthode load de l'objet DOMDocument, sinon l'analyseur ignorera l'indicateur de propriété.
La valeur de l'indicateur égale à True signifie la création d'un objet ServerXMLHTTP d'arrière-plan, distinct de l'objet DOMDocument.
L'utilisation directe de l'objet de ServerXMLHTTP permet un contrôle procédural beaucoup plus important qu'avec la méthode setProperty précitée.
Plutôt que de récupérer seulement les réponses XML à partir d'un serveur distant, l'objet ServerXMLHTTP permet aux développeurs d'utiliser les méthodes de transmissions GET et POST, aussi bien que la capacité de manipuler des connexions de sécurité de base.
Dim Objet_ServerXMLHTTP Set Objet_ServerXMLHTTP = _ Server.CreateObject ("MSXML2.ServerXMLHTTP") Objet_ServerXMLHTTP.open("GET", _ "http://nom-serveur/reponse.asp, false)
L'interface IServerXMLHTTPRequest hérite de l'IXMLHTTPRequest et l'étend avec quatre nouvelles méthodes getOption, setOption, waitForResponse et setTimeouts.
Les PropriétésPropriété |
---|
Description |
Objet_ServerXMLHTTPRequest.onreadystatechange = GestionnaireEvénement |
indique le getionnaire d'événements pour être appelé lorsque la propriété readyState change, en lecture et écriture. |
Etat = Objet_ServerXMLHTTPRequest.readyState |
représente l'état de la requête, en lecture seule. |
Chaîne = Objet_ServerXMLHTTPRequest.responseBody |
représente le corps de l'entité de réponse commun tableau d'octets non-signés, en lecture seule. |
Stream = Objet_ServerXMLHTTPRequest.responseStream |
représente le corps de l'entité de réponse comme un flux de données textuelles, en lecture seule. |
Texte = Objet_ServerXMLHTTPRequest.responseText |
représente le corps de l'entité de réponse comme une chaîne de caractères, en lecture seule. |
Set Objet_XML = Objet_ServerXMLHTTPRequest.responseXML |
représente le corps de l'entité de réponse comme analysé par l'analyseur de Microsoft MSXML, en lecture seule. |
Valeur = Objet_ServerXMLHTTPRequest.status |
représente le code du statut HTTP retourné par une requête, en lecture seule. |
Chaîne = Objet_ServerXMLHTTPRequest.statusText |
représente le statut de la ligne de réponse HTTP, en lecture seule. |
Méthode |
---|
Description |
Objet_ServerXMLHTTP.abort() |
annule la requête HTTP courante. |
Chaîne = Objet_HttpRequest.getAllResponseHeaders() |
récupère les valeurs de tous les entêtes HTTP. |
Valeur = Objet_ServerXMLHTTPRequest.getOption(option) |
retourne la valeur de l'une des options suivantes :
|
Chaîne = Objet_HttpRequest.getResponseHeader(Nom_Entête) |
récupère la valeur d'un entête HTTP à partir du corps de la réponse. |
Objet_ServerXMLHTTP.open(GET | POST | PUT | PROPFIND, URL_Requête [, Bool_Async, Nom_Utilisateur, Mot_Passe]) |
initialise une requête Msxml2.XMLHTTP, et spécifie la méthode, l'adresse URL et les informations d'authentification pour la requête. |
Objet_ServerXMLHTTP.send([Nom_Corps]) |
envoie une requête HTTP vers le serveur et reçois une réponse. |
Objet_ServerXMLHTTPRequest.setOption(option) = Valeur |
fixe une des options suivantes :
|
Objet_ServerXMLHTTPRequest.setTimeouts(Pause_Résolution, Pause_Connection, Pause_Envoi, Pause_Réception) |
indique les paramètrages de pause pour la résolution du nom de domaine, en établissant la connexoion vers le serveur, l'envoi des données et la réception de la réponse. La valeur 1000 représente une seconde. |
Objet_HttpRequest.setRequestHeader(Nom_Entête) |
spécifie le nom d'un entête HTTP. |
Objet_ServerXMLHTTPRequest.waitForResponse(Temps_Secondes) |
autorise les requêtes serveurs à suspendre l'exécution tant que l'attente pour une opération d'envoi asychrone soit complète. |
Fichier sur le serveur hôte <html> <head> <title>La poésie</title> </head> <body> <h2>Les poèmes</h2> <a href="http://serveur-hote/serverxmlhttp.asp"> La locution des pierrots </a> ... </body> </html> Fichier : serverxmlhttp.asp <html> <head> <% Dim Objet_ServerXMLHTTP Dim auteur, titre, poeme Set Objet_ServerXMLHTTP = _ Server.CreateObject("MSXML2.ServerXMLHTTP") Objet_ServerXMLHTTP.open _ "GET", "http://serveur-distant/reponse.asp", false Objet_ServerXMLHTTP.send Set titre = _ Objet_ServerXMLHTTP.responseXML.selectSingleNode "/poesie/titre" Set auteur = _ Objet_ServerXMLHTTP.responseXML.selectSingleNode "/poesie/auteur" Set poeme = _ Objet_ServerXMLHTTP.responseXML.selectSingleNode "/poesie/texte" %> </head> <body> <h2> <% Response.Write titre.text %> </h2> <i>(Un poème de <% Response.Write auteur.text %>)</i> <p> <% Response.Write poeme.text %> </p> </body> </html> Fichier : reponse.asp <% Dim obj_dom Set obj_dom = Server.CreateObject("MSXML2.DOMDocument") obj_dom.async = false obj_dom.load Server.MapPath("source.xml") Response.ContentType = "text/xml" obj_dom.save Response %> Fichier : source.xml <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <!DOCTYPE poesie [ <!ELEMENT poesie (titre, texte, auteur)> <!ELEMENT titre (#PCDATA)> <!ELEMENT texte (#PCDATA)> <!ELEMENT auteur (#PCDATA)> ]> <poesie> <titre>Locution des pierrots</titre> <texte> Je ne suis qu'un viveur lunaire Qui fait des ronds dans le bassin Et cela, sans autre dessein Que de devenir légendaire. Retroussant d'un air de défin Mes manches de Mandarin pâle, J'arrondis ma bouche et - j'exhale Des conseils doux de Crucifix Ah! oui, devenir légendaire, Au seuil des siècles charlatans ! Mais où sont les Lunes d'antan ? Et que Dieu n'est-il à refaire ? </texte> <auteur>Jules Laforgue</auteur> </poesie> |