SOAP-Schnittstelle über Core httplib ansprechen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
ws
User
Beiträge: 65
Registriert: Freitag 16. Juni 2006, 13:19

Hallo,

ich habe folgendes Problem: ich versuche mit einem SOAP-Webservice zu kommunizieren. Ich habe dazu eine WSDL-Definition erhalten und habe versucht, mit ZSI entsprechende Stubs zu generieren, das ist aber fehlgeschlagen. Da die Daten, die ich übertragen will, relativ einfach gestrickt sind, habe ich mir dann überlegt, mit soapUI einfach eine entsprechende Beispielmessage zu generieren, mir daraus ein Template für Textersetzungen zu generieren und das ganze per HTTPLib an den Server zu schicken. Ich habe mich dabei an die Vorlage von
http://www-128.ibm.com/developerworks/library/ws-pyth5/
gehalten (wobei ich die alten HTTP-Objekte durch die neueren HTTPConnection und HTTPResponse ersetzt habe. Mein Code sieht ungefähr so aus

Code: Alles auswählen

    http_conn = httplib.HTTPConnection(SERVER_ADDR, SERVER_PORT)
    http_conn.putrequest("POST", "<SELECTOR>")
    http_conn.putheader("Host", SERVER_ADDR)
    http_conn.putheader("Content-Type", "text/plain; charset=\"utf-8\"")
    blen = len(SOAPBODYTEMPLATE)
    http_conn.putheader("Content-Length", str(blen))
    http_conn.putheader("SOAPAction", "<ACTION>")
    http_conn.endheaders()
    soapbody = SOAPBODYTEMPLATE
    http_conn.send(soapbody)
    http_resp = http_conn.getresponse()
    print "Response:\n%s" % http_resp
    print "Status:%s" % http_resp.status
    print "Reason:%s" % http_resp.reason
    print http_resp.read()
Was mir aus dem angegebenen Link nicht klar ist: Was muss statt <SELECTOR> in Zeile 3 eingetragen werden? Und was statt <SOAPACTION> in Zeile 8?

Für jede Hilfe dankbar

Wolfgang
Antworten