Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Perl SOAP ?

3 réponses
Avatar
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

3 réponses

Avatar
Emmanuel Florac
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
Avatar
luc2
tu tape "perl soap" sur google
Avatar
Freddy Dissaux
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