从Python连接到Microsoft Dynamics CRM 2011 SDK

时间:2011-10-29 17:53:21

标签: python dynamics-crm dynamics-crm-2011

有没有人有幸使用Python连接到Microsoft Dynamics CRM 2011中的2011端点?我已经安装了SUDS并且可以获取WSDL,但服务调用返回400 Bad Request。我确定这是因为我没有经过身份验证,但我不太确定如何使用原始SOAP进行身份验证。我知道Girish's code sample,但对SOAP的了解还不够深入。

我看到这被问到a year ago on SO,但这个问题似乎与NTLM有关。就我而言,我想使用WS-Trust。

这是我得到的代码:

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)

1 个答案:

答案 0 :(得分:0)

如果不要求使用SOAP - 请考虑使用RESTish Odata服务。我不是Python专家 - 但您可以在浏览器中运行GET请求并使用调试器工具查看浏览器为标头发送的内容并在Python代码中模仿它。您可以通过修改Content-Type标头来选择服务返回的格式(JSON或XML)。