Ответ от Ishpeck находится на правильном пути. Я просто хотел добавить кое-что о внутренностях Suds.
Клиент suds - это большой жирный слой абстракции поверх HTTP-открывателя urllib2. HTTP-клиент, cookiejar, заголовки, запросы и ответы хранятся в объекте transport
. Проблема заключается в том, что ни одно из этих действий не кэшируется и не хранится внутри транспорта, кроме, возможно, файлов cookie в cookie-банке, и даже отслеживание их иногда может быть проблематичным.
Если вы хотите увидеть, что происходит при отладке, я бы предложил добавить это в ваш код:
import logging
logging.basicConfig(level=logging.INFO)
logging.getLogger('suds.client').setLevel(logging.DEBUG)
logging.getLogger('suds.transport').setLevel(logging.DEBUG)
Suds использует собственный logging
модуль , поэтому, включив ведение журнала отладки, вы увидите все выполняемые действия, включая заголовки, переменные, полезные данные, URL-адреса и т. Д. спас меня много раз.
Помимо этого, если вам действительно необходимо окончательно отслеживать состояние ваших заголовков, вам потребуется создать собственный подкласс объекта suds.transport.http.HttpTransport
и перегрузить некоторые из поведения по умолчанию, а затем передать его Client
конструктор.
Вот очень упрощенный пример:
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)