Cómo mostrar y outcoming mensaje SOAP entrante para ZSI.ServiceProxy en Python (versión 2.1)?

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

  •  01-10-2019
  •  | 
  •  

Pregunta

Hace un par de meses me han hecho la misma pregunta, pero en el contexto de la versión anterior de ZSI ( Cómo mostrar outcoming y el mensaje entrante SOAP para ZSI.ServiceProxy en Python? ). Ahora, en la nueva versión de 2.1 ZSI no hay ningún parámetro tacefile). He intentado encontrar una documentación para la nueva versión pero faild. ? ¿alguien sabe cómo mostrar los mensajes SOAP generados y recibidos por ZSI 2.1 Gracias de antemano: -)

¿Fue útil?

Solución

Para la depuración he encontrado solución menos interferencia usando Wireshark para rastrear los paquetes TCP. Se ve así:

text alt

Otros consejos

he tenido este mismo problema. Mi solución fue modificar el archivo dispatch.py ??que viene con ZSI.

He creado una función de registro (mensaje de registro) para mi aplicación que almacene mensajes SOAP en una base de datos y luego agregó que la función cuando sea necesario. No recuerdo la versión ZSI que estaba usando sin embargo. Usted debe ser capaz de encontrar estas funciones con bastante facilidad en el código sin embargo. I AVE números L aproximadas desde que hice otras ediciones

en el archivo Dispatch.py ??en su directorio site-packages

L156 - registros de las respuestas de SOAP

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 - registros de errores de SOAP

def _ModPythonSendFault(f, **kw):
    logmessage( str(f.AsSOAP()), 1, kw['request'].get_remote_host() )  #LOGGING ADDED HERE
    _ModPythonSendXML(f.AsSOAP(), 500, **kw)

L277 - Registra solicitudes

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)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top