Я просто пытаюсь получить доступ к веб-службам Exchange (EWS) 2010 с помощью Python, используя специальную вилку Alex Shess от Alex Koshelev (можно найти на BitBucket). Я нашел базовый код для доступа к EWS here, и он работает нормально до сих пор. Однако, когда я пытаюсь реализовать другие операции, требующие атрибутов (например, операцию FindFolder), он терпит неудачу.Python suds.TypeNotFound на Exchange EWS 2010
Вот код, я использую:
import urllib2
from suds.client import Client
from suds.sax.element import Element
from suds.transport.https import HttpTransport
class Transport(HttpTransport):
def __init__(self, **kwargs):
realm, uri = kwargs.pop('realm'), kwargs.pop('uri')
HttpTransport.__init__(self, **kwargs)
self.handler = urllib2.HTTPBasicAuthHandler()
self.handler.add_password(realm=realm,
user=self.options.username,
passwd=self.options.password,
uri=uri)
self.urlopener = urllib2.build_opener(self.handler)
transport = Transport(realm='owa10.123together.com',
uri='https://owa10.123together.com',
username='[email protected]',
password='demo123!')
client = Client("https://owa10.123together.com/EWS/Services.wsdl",
transport=transport)
ns = ('t', 'http://schemas.microsoft.com/exchange/services/2006/types')
soap_headers = Element('RequestServerVersion', ns=ns)
soap_headers.attributes.append('Version="Exchange2010_SP1"')
client.set_options(soapheaders=soap_headers)
address = client.factory.create('t:EmailAddress')
address.Address = '[email protected]'
traversal = client.factory.create('t:FolderQueryTraversalType')
#traversal.Traversal = 'Deep'
#print client.service.GetUserOofSettings(address)
test = client.service.FindFolder(traversal)
print test
Когда я запускаю этот код я получаю следующее сообщение об ошибке:
suds.TypeNotFound: Type not found: 'Shallow'
Я также использовал регистратор для того, чтобы выяснить проблему и это показывает мне следующее:
DEBUG:suds.mx.literal:starting content:
(Content){
tag = "Shallow"
value = "Shallow"
type = None
}
Кто-нибудь знает здесь, где проблема? Это мой кусок кода или файл .wsdl не нормально? Обратите внимание, что я нахожусь кровавым в Python и особенно пеной. Если вам нужна дополнительная информация или код, просто скажите мне.
спасибо, что заблаговременно!