Jon W
Jon W

Reputation: 15826

Python SOAP document handling

I've been trying to use suds for Python to call a SOAP WSDL. I just need to call the service programmatically and write the output XML document. However suds automatically parses this data into it's own pythonic data format. I've been looking through the examples and the documentation, but I can't seem to find a way to return the XML document that the SOAP service gives me.

Is there an easy way to do this I'm overlooking? Is there an easier way to do this in Python than suds?

Upvotes: 1

Views: 1416

Answers (2)

Jon W
Jon W

Reputation: 15826

At this early stage in suds development, the easiest way to get to the raw XML content is not what one would expect.

The examples on the site show us with something like this:

client = Client(url)
result = client.service.Invoke(subm)

however, the result is a pre-parsed object that is great for access by Python, but not for XML document access. Fortunately the Client object still has the original SOAP message received stored.

result = client.last_received()
print result

Will give you the actual SOAP message received back.

Upvotes: 3

jkp
jkp

Reputation: 81310

You could take a look at a library such as soaplib: its a really nice way to consume (and serve) SOAP webservices in Python. The latest version has some code to dynamically generate Python bindings either dynamically (at runtime) or statically (run a script against some WSDL).

[disclaimer: I'm the maintainer of the project! - I didn't write the bulk of it though]

Upvotes: 0

Related Questions