3 votes

Connexion à Microsoft Dynamics CRM 2011 SDK à partir de Python

Quelqu'un a-t-il réussi à se connecter aux points de terminaison 2011 de Microsoft Dynamics CRM 2011 en utilisant Python ? J'ai installé SUDS et je peux récupérer le WSDL, mais les appels de service renvoient 400 Bad Request. Je suis sûr que c'est parce que je ne suis pas authentifié, mais je ne sais pas vraiment comment m'authentifier en utilisant SOAP brut. Je connais Exemple de code de Girish mais je ne suis pas assez familier avec SOAP pour aller plus loin.

Je vois que cette question a été posée il y a un an sur SO mais cette question semble concerner NTLM. Dans mon cas, je veux utiliser WS-Trust.

Voici le code que j'ai obtenu :

from suds.client import Client
import logging

logging.basicConfig(level=logging.INFO)

url = 'https://dev.crm.dynamics.com/XRMServices/2011/Discovery.svc?wsdl'
client = Client(url)

req = client.factory.create('ns3:RetrieveOrganizationsRequest')
accessTypes = client.factory.create('ns3:AccessType')
orgRel = client.factory.create('ns3:OrganizationRelease')
req.AccessType = accessTypes.Default
req.Release = orgRel.Current

headers = dict()
headers['Content-Type'] = 'application/soap+xml'
client.set_options(headers=headers)

resp = client.service.Execute(req)

0voto

Jason Koopmans Points 128

Si l'utilisation de SOAP n'est pas une obligation, considérez les options suivantes RESTish Odata service. Je ne suis pas un expert de Python - mais vous pourriez exécuter des requêtes GET dans un navigateur et utiliser les outils de débogage pour voir ce que le navigateur envoie comme en-têtes et imiter cela dans votre code Python. Vous pourriez également choisir le format que le service renvoie (JSON ou XML) en modifiant l'en-tête Content-Type.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X