CPAN: Parameter über Soap senden

Beitrag lesen

Was mache ich falsch?

Erstmal nix schlimmes, aber es hätte dir geholfen, zu wissen, dass auf der Gegenseite ein .NET-SOAP-Stack von Microsoft sitzt, die sich noch nie an Standards halten konnten. (Die Endung .asmx ist der Hinweis.) In der Doku zu SOAP::Lite stehen verstreut diverse Workarounds, die man einbauen muss, damit es klappt.

use SOAP::Lite qw();  
use URI qw();  
our $NAMESPACE = 'http://msiggi.de/Sportsdata/Webservices';  
  
my $soap = SOAP::Lite->new(proxy => 'http://www.OpenLigaDB.de/Webservices/Sportsdata.asmx');  
$soap->service('http://www.OpenLigaDB.de/Webservices/Sportsdata.asmx?WSDL');  
$soap->default_ns($NAMESPACE);  
$soap->on_action(sub {  
    my ($self, $service) = @_;  
    my $u = URI->new($NAMESPACE);  
    $u->path_segments($u->path_segments, $service);  
    return $u;  
});  
my $message = $soap->GetMatchByMatchID(SOAP::Data->new(name => 'MatchID', value => 9998));  
# use Data::Dump::Streamer qw(DumpLex); DumpLex $message;  

Siehe SOAP::SOM, um die Ergebnisse aus dem Objekt $message herauszupfriemeln.