如何使用Python连接到Microsoft Dynamics CRM服务器?

如何使用Python连接到Microsoft Dynamics CRM服务器?,python,web-services,dynamics-crm,ntlm,dynamics-crm-2011,Python,Web Services,Dynamics Crm,Ntlm,Dynamics Crm 2011,Microsoft Dynamics CRM服务使用NTLM身份验证,这使得使用SUD从python进程连接到它变得有些复杂。我正在寻找一个代码示例,它将: 从RetrieveAttributeRequest发送和接收响应 发送和接收来自Execute请求的响应 这必须使用Python2.6或Python2.7,而不是Python3。我已经有了一个使用curl来实现这一点的工作实现,但它在最好的时候是脆弱的,作为我在这个工具中所做的其他工作的一部分,我想清理它并使它使用python/suds运行

Microsoft Dynamics CRM服务使用NTLM身份验证,这使得使用SUD从python进程连接到它变得有些复杂。我正在寻找一个代码示例,它将:

  • RetrieveAttributeRequest发送和接收响应
  • 发送和接收来自
    Execute
    请求的响应

  • 这必须使用Python2.6或Python2.7,而不是Python3。我已经有了一个使用curl来实现这一点的工作实现,但它在最好的时候是脆弱的,作为我在这个工具中所做的其他工作的一部分,我想清理它并使它使用python/suds运行。

    我不知道这是否会对您有所帮助,但我曾经通过一个NTLM代理

    下面是一段代码片段:

        c = Curl()
    
        c.setopt(URL, 'http://www.somesite.com')
        c.setopt(FOLLOWLOCATION, 1)           # follow redirects
        c.setopt(MAXREDIRS, 5)              # max redirects
        c.setopt(PROXY, 'proxy.somesite.com')
        c.setopt(PROXYUSERPWD, 'DOMAIN/USER:PASSWORD')
        c.setopt(PROXYAUTH, HTTPAUTH_NTLM)    # use NTLM
    
        c.perform()
    

    下面是关于
    Curl
    对象的示例。

    我知道这有点晚了,但希望它能帮助到其他人

    NTLM身份验证已添加到中的suds


    现在我们使用curl来完成这项工作,但这意味着我们必须在每次调用时处理XML的序列化和反序列化,手工构建SOAP消息并不有趣。我更希望有一个解决方案能将其抽象出来,而不必亲自动手编写。5年后,
    suds
    被放弃了。然而,
    pip install suds community
    似乎至少可以安装,以下是github页面:
    from suds.transport.https import WindowsHttpAuthenticated
    from suds.client import Client
    
    url = 'http://crmurl/XRMServices/2011/Discovery.svc?wsdl'
    ntlm = WindowsHttpAuthenticated(username='DOMAIN\username', password='password')
    client = Client(url, transport=ntlm)