Bonjour,
Après avoir réussi à configurer correctement mon proxy, je me suis attaqué un test du module SOAP::Lite. Je suis donc en train de suivre un tuturiel trouvé sur internet : un extrait de "Web Services with Per", de O'Reilly.
J'ai donc du installer le module XML::RSS pour tester un des codes donné en exemple. Voici le code en question :
Le premier problème est que la structure du site ou l'on récupère le flux semble en effet avoir changé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #!/usr/bin/perl -w use strict; use SOAP::Lite; use XML::RSS; my $user = shift || die "Usage: $0 userID [ usernick ]\n\nStopped"; my $nick = shift || "#$user"; my $host = 'http://use.perl.org'; my $uri = "$host/Slash/Journal/SOAP"; my $proxy = "$host/journal.pl"; # SOAP material starts here: my $journal = SOAP::Lite->uri($uri)->proxy($proxy); my $results = $journal->get_entries($user, 15)->result; my $rss = XML::RSS->new(version => '1.0'); $rss->channel(title => "use.perl.org journal of $nick",'link' => $proxy, description =>"The use.perl.org journal of $nick"); $rss->add_item(title => $_->{subject},'link' => $_->{url})for (@$results); print STDOUT $rss->as_string; exit;
-le répertoire http://use.perl.org/Slash/* n'existe pas/plus
-le fichier journal.pl de chaque utilisateur semble se trouver dans http://use.perl.org/~user/journal/rss/
J'ai donc "adapté" le code aux modifications :
Cependant, même si je rentre en paramètre un nom d'utilisateur vadlide, je n'arrive pas à récupérer ses données...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 #!/usr/bin/perl -w use strict; use SOAP::Lite; use XML::RSS; my $user = shift || die "Usage: $0 userID [ usernick ]\n\nStopped"; my $nick = shift || "#$user"; my $host = 'http://use.perl.org'; #my $uri = "$host/Slash/Journal/SOAP"; my $uri = "$host/~$user/journal/rss"; #my $proxy = "$host/journal.pl"; my $proxy = "$uri/journal.pl"; # SOAP material starts here: my $journal = SOAP::Lite ->uri($uri) ->proxy($proxy); #my $results = $journal->get_entries($user, 15)->result; my $results = $journal->get_entries(10)->result; my $rss = XML::RSS ->new(version => '1.0'); $rss->channel(title => "use.perl.org journal of $nick", 'link' => $proxy, description =>"The use.perl.org journal of $nick"); $rss->add_item(title => $_->{subject}, 'link' => $_->{url}) for (@$results); print STDOUT $rss->as_string; exit;
Voici ce que je récupère lorsque j'exécute le script :
Je ne vois pas comment faire?!C:\soap\perl>perl exempleSOAPLiteRSS.pl ovid
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
xmlns:admin="http://webns.net/mvcb/"
>
<channel rdf:about="http://use.perl.org/~ovid/journal/rss/journal.pl">
<title>use.perl.org journal of #ovid</title>
<link>http://use.perl.org/~ovid/journal/rss/journal.pl</link>
<description>The use.perl.org journal of #ovid</description>
<items>
<rdf:Seq>
</rdf:Seq>
</items>
</channel>
</rdf:RDF>
Partager