Wie outcoming und eingehende SOAP-Nachricht für ZSI.ServiceProxy in Python (Version 2.1) angezeigt werden?
Frage
paar Monate habe ich die gleiche Frage gestellt, aber im Zusammenhang mit der älteren Version von ZSI ( Wie für ZSI.ServiceProxy in Python? ) outcoming und eingehende SOAP-Nachricht angezeigt werden soll. Nun, in der neuen Version von ZSI 2.1 gibt es keine tacefile
Parameter). Ich habe versucht, eine Dokumentation für die neue Version zu finden, aber ich faild. ? Wer weiß, wie die SOAP-Nachrichten erzeugt anzuzeigen und empfangen von ZSI 2.1 Vielen Dank im Voraus: -)
Lösung
Für das Debuggen ich gefunden habe, weniger störende Lösung wireshark unter Verwendung der TCP-Pakete zu verfolgen. Es sieht wie folgt aus:
Andere Tipps
Ich hatte das gleiche Problem. Meine Abhilfe war die dispatch.py ??Datei zu ändern, die mit ZSI kommt.
Ich habe eine Logging-Funktion (logmessage) für meine Anwendung, die SOAP-Nachrichten in einer Datenbank gespeichert werden soll und dann hinzugefügt, dass die Funktion bei Bedarf. Ich habe nicht die ZSI Version erinnere ich mich jedoch wurde mit. Sie sollten jedoch diese Funktionen ziemlich leicht im Code finden können. I ave ungefähre L-Nummern, da ich andere Änderungen
gemachtin Dispatch.py ??Datei in Ihrer Website-Pakete Verzeichnis
L156 - Protokolle SOAP-Antworten
def _Dispatch(tons-of-args, **kw):
#several lines of code edited here#
#several lines of code edited here#
#several lines of code edited here#
sw = SoapWriter(nsdict=nsdict)
sw.serialize(result, tc)
logmessage( str(sw), 1, kw['request'].get_remote_host() ) #LOGGING HERE
L168 - Protokolle SOAP Fehler
def _ModPythonSendFault(f, **kw):
logmessage( str(f.AsSOAP()), 1, kw['request'].get_remote_host() ) #LOGGING ADDED HERE
_ModPythonSendXML(f.AsSOAP(), 500, **kw)
L277 - Protokolle Anfragen
def AsHandler(request=None, modules=None, **kw):
'''Dispatch from within ModPython.'''
a = request.read(-1)
logmessage( a, 0, request.get_remote_host() ) #LOGGING ADDED HERE
ps = ParsedSoap(a)
kw['request'] = request
_Dispatch(ps, modules, _ModPythonSendXML, _ModPythonSendFault, **kw)