从Python连接到Microsoft Dynamics CRM 2011 SDK

3 投票
1 回答
2594 浏览
提问于 2025-04-17 05:15

有没有人成功用Python连接到2011版的Microsoft Dynamics CRM 2011的接口?我已经安装了SUDS,可以获取WSDL文件,但服务调用返回的是400错误,意思是请求有问题。我想这肯定是因为我没有进行身份验证,但我不太清楚如何用原始的SOAP进行身份验证。我知道有Girish的代码示例,但我对SOAP不太熟悉,没法深入了解。

我看到这个问题在一年前也有人问过,但那个问题似乎是关于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

如果不一定要使用SOAP,那可以考虑一下这个REST风格的Odata服务。我对Python不是很精通,不过你可以在浏览器里发送GET请求,然后用调试工具查看浏览器发送了什么头信息,接着在你的Python代码里模仿这些操作。你还可以通过修改Content-Type头来选择服务返回的数据格式(JSON或XML)。

撰写回答