Wie outcoming und eingehende SOAP-Nachricht für ZSI.ServiceProxy in Python (Version 2.1) angezeigt werden?

StackOverflow https://stackoverflow.com/questions/3676409

  •  01-10-2019
  •  | 
  •  

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: -)

War es hilfreich?

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:

alt text

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

gemacht

in 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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top