How can I dump raw XML of my request and server's response using suds in python

gistart picture gistart · Nov 24, 2010 · Viewed 7.9k times · Source

i'm using suds 0.4 and python 2.6, to communicate with remote server.

It's WSDL loads perfectly, but any function call returns error. Something is wrong with that server.

Now i need to get a dump of soap structure, that is sent to server and it's response, in pure soap either.

How can i do that?

Answer

MattH picture MattH · Nov 24, 2010

Setting the logging for suds.transport to debug will get you the sent and received messages.

For an interactive session, I find this is good:

import logging
logging.basicConfig(level=logging.INFO)
logging.getLogger('suds.client').setLevel(logging.DEBUG)
logging.getLogger('suds.transport').setLevel(logging.DEBUG)
logging.getLogger('suds.xsd.schema').setLevel(logging.DEBUG)
logging.getLogger('suds.wsdl').setLevel(logging.DEBUG)

from suds.client import Client
s = Client('http://someservice?wsdl')

For specifically just the sent and received XML sent to a file, you'll need to play with the logging settings, see http://docs.python.org/library/logging.html