La respuesta de Ishpeck está en el camino correcto. Solo quería agregar algunas cosas sobre los internos de Suds.
El cliente de espuma es una gran capa de abstracción encima de un abridor HTTP urllib2. El cliente HTTP, cookiejar, encabezados, solicitud y respuestas están todos almacenados en el objeto transport
. El problema es que ninguna parte de esta actividad se almacena en caché o almacenada dentro del transporte, salvo, tal vez, las cookies dentro de la cookiejar, e incluso el seguimiento de estas puede ser problemático.
Si quieres ver lo que está pasando cuando la depuración, mi sugerencia sería añadir esto a su código:
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 y así girando el registro de depuración, se llega a ver toda la actividad que se realiza debajo, incluidos encabezados, variables, carga, URL, etc. Esto me ha ahorrado toneladas de veces.
Fuera de eso, si realmente se necesita para realizar un seguimiento del estado definitivamente en sus cabeceras, vas a tener que crear una subclase personalizada de un objeto suds.transport.http.HttpTransport
y la sobrecarga de algunos de los comportamientos por defecto y luego pasar a que el constructor Client
.
Aquí es un super-sobre-simplificado ejemplo:
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)
¿Usted está pidiendo consejos generales sobre las bibliotecas de Python para el jabón, o está pidiendo ayuda en un aspecto particular de la espuma? Por favor, intente hacer preguntas específicas. –