有人成功用Python suds连接Exchange Web Services吗?
我正在尝试调用一些方法,比如UpdateItem,但一直没有成功。每次都出现以下错误:
异常:导入的模式(http://www.w3.org/XML/1998/namespace)在(http://www.w3.org/2001/xml.xsd)失败
如果有人能提供一些可以正常工作的代码,创建一个客户端并成功调用一个方法,我将非常感激。谢谢。我看到过有人说把模式文件下载到我电脑上可能会有帮助,但我也不太确定该如何在我的代码中实现。以下是我目前的代码:
import urllib2
import suds
import logging
from suds import WebFault
from suds.client import Client
from suds.client import Factory
from suds.transport.http import HttpAuthenticated
from logging import getLogger
logging.getLogger('suds.client').setLevel(logging.CRITICAL)
from suds.xsd.doctor import ImportDoctor, Import
# cannot access schema through browser
imp = Import('http://schemas.microsoft.com/exchange/services/2006/messages')
d = ImportDoctor(imp)
client = Client('http:path to wsdl', doctor = d, username='my_username',
password='my_password')
retVal = client.service.GetServerTimeZones()
print retVal
2 个回答
0
这个问题虽然有点老了,但对于那些来这里寻找替代方案的人来说,有一个新的工具可以试试,它使用了suds - EWSWrapper_py,这是一个用Python实现的EWS Wrapper。这个工具主要是针对Exchange日历的,但它为进一步开发提供了很好的基础。源代码托管在GIT上。
简单来说,目前的功能包括:
- 日历事件的操作:
- 添加,
- 更新,
- 删除,
- 列出
- 同步
- 任务的操作:
- 添加,
- 更新,
- 删除,
- 列出
- 文件夹的操作:
- 列出
- 同步
0
建议使用这个suds-ews的分支版本。此外,你还需要实现ntlm认证。