erstmal vorweg: eigentlich ist es mir unangenehm, mit dem ersten Post gleich eine sehr ausführliche Frage zu stellen.

Ich beschäftige mich erst seit kurzem mit Python, und habe nun dieses hilfreiche Forum entdeckt. SOAP begegnet mir auch zum ersten mal, und schon tauchen erste Schwierigkeiten auf.
Ich möchte Daten über die SOAP-Schnittstelle von openligadb.de abrufen. Aber leider bekomme ich einen Fehler zurück. Ich habe die Library SOAPpy importiert, und versuche folgendermaßen an die Daten zu kommen:
Code: Alles auswählen
from SOAPpy import SOAPProxy
url = 'http://www.OpenLigaDB.de/Webservices/Sportsdata.asmx'
n = 'http://msiggi.de/Sportsdata/Webservices'
proxy = SOAPProxy(url,n)
proxy.config.dumpSOAPOut = 1
proxy.config.dumpSOAPIn = 1
print proxy.GetAvailLeagues()
soappy sendet nun folgende Anforderung an den Server:
Code: Alles auswählen
*** Outgoing SOAP ******************************************************
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
>
<SOAP-ENV:Body>
<ns1:GetAvailLeagues xmlns:ns1="http://msiggi.de/Sportsdata/Webservices" SOAP-ENC:root="1">
</ns1:GetAvailLeagues>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
************************************************************************
Code: Alles auswählen
*** Incoming SOAP ******************************************************
<?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:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Der Wert des HTTP-Headers 'SOAPAction' wurde vom Server nicht erkannt: GetAvailLeagues.</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>
************************************************************************
OpenLigaDB-Beispiel für eine SOAP Anforderung
Code: Alles auswählen
POST /Webservices/Sportsdata.asmx HTTP/1.1
Host: www.openligadb.de
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://msiggi.de/Sportsdata/Webservices/GetAvailLeagues"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetAvailLeagues xmlns="http://msiggi.de/Sportsdata/Webservices" />
</soap:Body>
</soap:Envelope>
Seh ich es richtig, dass SOAPpy den HTTP-Header - wie er im OpenLigaDB-Beispiel erscheint - gar nicht sendet? Auch die xml ist ganz anders aufgebaut. Ist SOAPpy für Anfragen an OpenLigaDB also unbrauchbar? Oder bin ich da jetzt völlig auf dem Holzweg und hab das SOAP-Prinzip noch nich richtig verstanden?
Es ist für mich alles ein wenig undurchschaubar. Es wäre nett, wenn jemand Rat weiß und mir Tipps geben könnte, wie ich zum Ziel kommen kann.
