Perl SOAP ?

Le
Chloe Sival
Bonjour,

Alors je suis pas très très perl, je m'en sert pour des petits
scripts qui me facilite la vie.

La je dois faire un script qui interroge un web service, j'ai bien un
fichier wsdl mais j'y pige quedal

Je dois me connecter a une url, envoyer un login/pass puis
passer une requete pour recevoir la reponse désiré.

Quelqu'un a deja fait cela ?

merci d'avance
chloe
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Emmanuel Florac
Le #23645401
Le Wed, 10 Aug 2011 17:20:33 +0200, Chloe Sival a écrit:


Quelqu'un a deja fait cela ?




Tu as réussi à te connecter à l'url? Le mieux c'est d'utiliser
WWW::Mechanize, comme ceci :

use strict;
use warnings;
use WWW::Mechanize;

my $mech = WWW::Mechanize->new();

my $url="http://watever/?wut";

$response = $mech->get( $url );

Ensuite tu peux utiliser $response... Voir la doc de WWW::Mechanize...



--
Socialism never took root in America because the poor see themselves not
as an exploited proletariat, but as temporarily embarrassed millionaires.
John Steinbeck
luc2
Le #23645731
tu tape "perl soap" sur google
Freddy Dissaux
Le #23645981
Le Wed, 10 Aug 2011 17:20:33 +0200, Chloe écrivait:
Bonjour,


Bonjour,

Début de piste:

#!/usr/bin/perl
use strict;
use warnings;

use English qw(-no_match_vars);
use Encode;

sub usage {
my $name = shift;
print <<"EOF"
$name method file.xml
EOF
;
return;
}

if (scalar @ARGV != 2) {
usage($PROGRAM_NAME);
exit 1;
}

my $method = shift;
my $file_name = shift;

if (! -f $file_name) { usage($PROGRAM_NAME); }
open my $fh, '<', $file_name or die "open '$file_name': $!n";
my $xml_request = do { local $INPUT_RECORD_SEPARATOR = undef; <$fh> };
close $fh or die "close '$file_name': $!n";

my $soap = SOAP::Lite->new(
uri => $ENV{SOAP_URI},
proxy => $ENV{SOAP_PROXY},
);

my $xml_header = <<"EOF"
<username>USERNAME</username>
<password>PASSWORD</password>
<logicaladdress>$method</logicaladdress>
EOF
;

my $header = SOAP::Header->type('xml' => encode('utf8', $xml_header));
my $request = SOAP::Data->type('xml' => $xml_request);
my $res = $soap->$method($header, $request);

if (!$res->fault) {
print '[Ok] [', $res->result, ']: [', $res->paramsout, '] [',
$res->faultstring, "]n";
exit 0;
}

print '[Err] [', $res->faultcode, ']: [', $res->faultstring, "]n";

--
freddy <point> dsx <arobase> free <point> fr
Publicité
Poster une réponse
Anonyme