2010-11-24 18 views
8

J'utilise suds 0.4 et python 2.6, pour communiquer avec le serveur distant.Comment est-ce que je peux vider le XML brut de ma demande et de la réponse du serveur en utilisant python

WSDL se charge parfaitement, mais n'importe quel appel de fonction renvoie une erreur. Quelque chose ne va pas avec ce serveur.

Maintenant, j'ai besoin d'obtenir une décharge de la structure du savon, qui est envoyée au serveur et sa réponse, dans du savon pur non plus.

Comment puis-je faire cela?

Répondre

12

Définir la journalisation pour suds.transport pour déboguer vous obtiendrez les messages envoyés et reçus.

Pour une session interactive, je trouve cela est bon:

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') 

Pour spécifiquement seulement envoyés et reçus XML envoyés dans un fichier, vous devrez jouer avec les paramètres de journalisation, voir http://docs.python.org/library/logging.html