J'ai une caméra et j'essaie de vous connecter à VIS SUDS. J'ai essayé d'envoyer un XML brut et j'ai constaté que la seule chose qui empêche le XML SUDS de travailler est un espace de noms d'enveloppe de savon incorrect. P>
L'espace de noms d'enveloppe est: p>
Et je veux la réécrire à: p>
Pour ajouter un espace de noms dans Python, j'essaie ce code: P>
mais quand j'ajoute le Merci pour toute aide. P> xmlns: soap-env = "http://schemas.xmlsoap.org/soap/envelope/" code> p>
xmlns: soap-env = "http://www.w3.org/2003/05/soap-envelope" code> p> p>
message = élément ('ellement_name'). AddPrefix (p = 'SOAP-ENC', U = 'www.w3.org / enc') code> p> p>
SOAP-ENV code> à l'espace de noms, il n'écrit pas car il est codé dans les liaisons SUDS. Y a-t-il un moyen de écraser cela dans SUDS? P>
4 Réponses :
J'ai réussi à obtenir ce travail, l'enveloppe SOAP est codée dur dans Merci pour toute aide p> liants.py code> qui est stocké dans
SUDS.EGG code> installé dans vos packages de site. J'ai changé l'adresse de l'enveloppe SOAP au
http://www.w3.org/2003/05/soap-envelope code>. C'était compatible avec ma caméra. Je n'ai pas pu trouver une commande pour écraser cette enveloppe dans les suds, donc je l'ai codé dur dans les liaisons.py. P>
Pour savoir comment entrer l'en-tête dans SUDS, vérifiez ma question précédente. Je posterai mon code comme je sais combien il y a peu de documentation.
Mise à jour manuelle Aussi, quelles versions de Python et Studs utilisez-vous? P> Binding.py code> n'est certainement pas la bonne façon d'y aller. Vous devriez pouvoir utiliser le
importatdoctor code> pour remplacer vos liaisons par défaut. Regardez la documentation pour Fixation des schémas brisés sur le site Web SUDS. p>
je l'ai entouré en remplaçant manuellement le à partir de là , tout va bien (avec mon service em>, c'est-à-dire) p> p> suds.binding.envns code> variable dans les reliures
code> module:
from suds.client import Client from suds.plugin import MessagePlugin WSDL_url = "my_url?wsdl" class MyPlugin(MessagePlugin): def marshalled(self, context): #print(str(context.envelope)) context.envelope.nsprefixes['SOAP-ENV']='myText' client = Client(WSDL_url, plugins=[MyPlugin()])
Quel type d'erreur obtenez-vous? Pourriez-vous élaborer et publier votre code?