Die Antwort von Ishpeck ist auf dem richtigen Weg. Ich wollte nur ein paar Dinge über die Suds Interna hinzufügen.
Der Suds-Client ist eine große Fettabstraktionsschicht über einem HTTP-Öffner von urllib2. Der HTTP-Client, der Cookie-Beitrag, die Header, die Anfrage und die Antworten sind alle im Objekt transport
gespeichert. Das Problem ist, dass keine dieser Aktivitäten im Cache zwischengespeichert oder gespeichert wird, außer vielleicht den Cookies innerhalb des Cookiejars, und selbst das Verfolgen dieser Aktivitäten kann manchmal problematisch sein.
Wenn Sie sehen wollen, was auf, wenn das Debuggen geht, mein Vorschlag wäre, dies zu Ihrem Code hinzuzufügen sein:
import logging
logging.basicConfig(level=logging.INFO)
logging.getLogger('suds.client').setLevel(logging.DEBUG)
logging.getLogger('suds.transport').setLevel(logging.DEBUG)
Suds makes use of the native logging
module und so, indem Sie auf die Debug-Protokollierung drehen, erhalten Sie alle Aktivitäten zu sehen darunter durchgeführt werden, einschließlich Header, Variablen, Payload, URLs usw. Das hat mich oft gespart.
Außerhalb dass, wenn Sie wirklich endgültig Zustand auf dem Header müssen verfolgen, Sie gehen zu müssen, eine benutzerdefinierte Unterklasse eines suds.transport.http.HttpTransport
Objekt erstellen, und einen Teil des Standardverhaltens überlasten und dann, dass an den Konstruktor übergeben Client
.
Hier ist ein Super-over-vereinfachtes Beispiel:
from suds.transport.http import HttpTransport, Reply, TransportError
from suds.client import Client
class MyTransport(HttpTransport):
# custom stuff done here
mytransport_instance = MyTransport()
myclient = Client(url, transport=mytransport_instance)
Stehen Sie für allgemeine Informationen zu Python-Bibliotheken für SOAP zu fragen, oder fragen Sie um Hilfe zu einem bestimmten Aspekte des Schaums? Bitte versuchen Sie spezifische Fragen zu stellen. –