Je vous propose ici de vous expliquer brièvement comment effectuer le même travail à l'aide de perlscript et d'ASP.
Même s'il est vrai que l'utilisation d'un composant ActiveX serveur est plus sécurisé et plus rapide vous serez confronter à quelques problèmes ...
Vous avez besoin d'effectuer des requêtes http dans vos scripts, à ce moment là plusieurs solutions s'offre à vous à savoir :
-
- Vous disposez de votre propre serveur et vous avez le contrôle administrateur afin de pouvoir installer un DLL http gratuite au moyen d'un " regsvr32 [madll.dll] "
-
- Vous pouvez acheter un composant http qui à fait ces preuves (serverObject,...) si votre hébergeur est d'accord pour vous l'installer sur une machine mutualisée .
-
- Active perl est installé sur votre serveur et à ce moment là, vous pouvez ouvrir le port http directement dans votre page ASP au moyen de quelques lignes de codes.
C'est cette dernière solution que je vais tenter de vous exposer ici.
Prérequis :
Votre serveur doit disposer d'active Perl 5.x ou supérieur et de la librairie LWP.
Explication :
Ce code n'est pas exhaustif. Je ne l'ai pas crée.
Il s'agit simplement d'une adaptation au perlscript et à l'ASP d'un script que l'on peut trouver partout sur le net.
Le code :
<script language="perlscript" runat="server">
use LWP::UserAgent; # librairie client HTTP
# function ErrorRepport(errMsg)
# fonction de gestion des erreurs
sub ErrorReport {
my ($errMsg) = @_;
$Response->Write($errMsg);
$Response->end;
}
# function geturl(myrul)
# il s'agit de la fonction principale qui permet d'éxecuter votre requête HTTP de type get
sub geturl {
my ($myurl) = @_; # récupère dans la variable $myurl l'url passée en paramètre de l'appel de la fonction geturl
my $returnString=""; # initialise la variable de retour à vide
$ua = new LWP::UserAgent or die ErrorReport("Impossible de créer le client"); # création du client HTTP
$ua->agent("$0/0.1 " . $ua->agent); # déclaration de l'agent utilisateur
$ua->agent("Mozilla/8.0"); # déclaration d'un agent utilisateur particulierement evolué de type Mozilla
$req = new HTTP::Request 'GET' => "$myurl"; # éxecute la requête HTTP en get
$req->header('Accept' => 'text/html'); # defini le format de l'entête
$res = $ua->request($req); # affecte le resultat de la requête http dans la variable $res
if ($res->is_success) {
# le résultat est correct
$returnString.=$res->content;
}
else {
# il y a une erreur
ErrorReport("Impossible de récuperer l'URL spécifiée");
}
$returnString; # renvoie le résultat sous forme de chaîne de caractère
}
</script>
<http>
<head>
<title>Client http en perlscript et ASP</title>
</head>
<body>
<!-- Appel de la fonction getURL -->
<%=geturl("http://www.asp-magazine.com")%>
</body>
</html>
Idées :
A priori il est tout a fait possible d'effectuer toutes les requêtes http que l'on désire par la méthode POST/GET en SSL ou non, sur tous les types de fichiers (image,html,texte,...) .
Références :
Quelques explications sur LWP
http://www.linpro.no/lwp/libwww-perl/lwpcook.pod
Web Client Programming with Perl
http://www.oreilly.com/catalog/webclient/
Le site de l'activePerl
http://www.activestate.com
Téléchargement
PerlScript_asp.zip