Perl SOAP Schnittstelle -> Possible SOAP version mismatch

atomrofler

Lt. Commander
Registriert
Mai 2005
Beiträge
1.358
Hallo zusammen,

ich versuche mit perl Daten über einen Webservice abzurufen. (http://www.openligadb.de/Webservices/Sportsdata.asmx)
Laut der Informationen ist die Schnittstelle SOAP 1.2 kompatibel, genau so wie die aktuellen SOAP libs unter Perl. Dennoch bekomme ich einen Versionsfehler beim abrufen der Daten bzw. namespace Probleme.

Ich hoffe auf Ideen.

Grüße


Ausgabe
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<soap12:Upgrade xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:SupportedEnvelope qname="soap:Envelope" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" />
<soap12:SupportedEnvelope qname="soap12:Envelope" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" />
</soap12:Upgrade>
</soap:Header>
<soap:Body>
<soap:Fault>
<faultcode>soap:VersionMismatch</faultcode>
<faultstring>Possible SOAP version mismatch: Envelope namespace http://schemas.xmlsoap.org/wsdl/soap/ was unexpected. Expecting http://schemas.xmlsoap.org/soap/envelope/.</faultstring><detail />

</soap:Fault>
</soap:Body>
</soap:Envelope>


Code
use strict;
use warnings;
use SOAP::Lite;

my $soap = SOAP::Lite->new();
my $client = $soap->service('http://www.OpenLigaDB.de/Webservices/Sportsdata.asmx?WSDL');
$client->soapversion('1.2');
$client->outputxml('true');

print $client->GetAvailSports(); # benötigt keine Übergabewerte
Ergänzung ()

Man denkt Stundenlang drüber nach, dabei zu offensichtlich.
Die Version muss nachtürlich erst gesetzt werden bevor man die Daten abruft ...

my $client = $soap
->soapversion('1.2')
->outputxml('true')
->service('http://www.OpenLigaDB.de/Webservices/Sportsdata.asmx?WSDL');

Close.
 
Zuletzt bearbeitet:
Zurück
Oben