Rebol supporte une dizaine de protocoles réseau standards, tels que
HTTP, FTP, TCP, POP, SMTP ...
Il est très facile d'écrire une script de quelques lignes permettant
de manipuler des données distantes.
Le protocole HTTP
Rebol permet de travailler facilement avec le protocole HTTP (Hyper Text
Transfert Protocol). Il est facile de capturer une page html située
sur le WEB. On peut imaginer facilement le type d'applications possibles :
récupération périodique de pages HTML, analyse de ces
pages, récupération de données XML ... Les exemples ci-dessous
nécessitent une connexion internet.
Lecture de pages
Exemple :
maPage: read http://www.rebol.com/docs.html
print maPage ; Affichage du code HTML de la page lue précédemment
Autre exemple utilisant une variable de type Url :
monUrl: http://www.rebol.com/docs.html
type? monUrl ; renvoi url! la variable est de type url
maPage: read monUrl
print maPage
Il est possible de récupérer les données contenues dans
l'entête de la requête HTTP retournée par le serveur :
sitePort: open http://www.rebol.com ; ouverture d'un port (open) sur la page index distante
type? sitePort ; renvoi port!
probe sitePort/locals/headers ; affichage de l'entête HTTP
make object! [
Date: "Sat, 06 Sep 2003 13:37:16 GMT"
Server: "Apache/1.3.26 (Unix) FrontPage/5.0.2.2623"
Last-Modified: "Tue, 02/Sep/2003/17:44:04/+GMT"
Accept-Ranges: "bytes"
Content-Encoding: none
Content-Type: "text/html"
Content-Length: "11512"
Location: none
Expires: none
Referer: none
Connection: "close"
Authorization: none
ETag: {"1259b8-2cf8-3f54d6e4"}
content: ""
]
Exécution de scripts distants
Il est possible d'exécuter des scripts distants, situés sur
le WEB sur un serveur HTTP.
exec: do http://rebolzone.free.fr/reb/bonjour.r ; exécution du script bonjour.r situé sur le serveur distant.
Attention, par ces temps incertains, où les virus et autres
merdouilles pullulent sur la toile, il convient d'être extrèmement
prudent sur les scripts inconnus ...
Obtenir la date de modification d'une page
modified? http://rebolzone.free.fr/index.html ; renvoi == 2-Feb-2003/14:21:48
La page existe-t-elle ?
either (exists? http://monsite.fr/toto.html) [print "ok, la page existe"]
[print "non, page inexistante"]