Подключение к Microsoft Dynamics CRM 2011 SDK из Python - PullRequest
3 голосов
/ 29 октября 2011

Кто-нибудь имел счастье подключиться к конечным точкам 2011 года в Microsoft Dynamics CRM 2011 с помощью Python? Я установил SUDS и могу получить WSDL, но сервисные вызовы возвращают 400 Bad Request. Я уверен, что это потому, что я не аутентифицирован, но я не совсем уверен, как проходить аутентификацию, используя сырой SOAP Я знаю о образце кода Гириша , но недостаточно знаком с SOAP, чтобы идти намного дальше.

Я вижу, что это было задано год назад на 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 голосов
/ 30 ноября 2012

Если использование SOAP не является обязательным требованием - рассмотрите сервис RESTish Odata . Я не эксперт по Python, но вы можете выполнять запросы GET в браузере и использовать инструменты отладчика, чтобы увидеть, что браузер отправляет для заголовков, и подражать этому в вашем коде Python. У вас также есть выбор, какой формат возвращает служба (JSON или XML), изменив заголовок Content-Type.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...