在使用NTLM验证Lists.asmx?WSDL之后,如何让Suds运行代理?

时间:2011-06-14 13:35:40

标签: python sharepoint proxy suds

我正在尝试使用Python suds通过使用服务来访问SharePoint列表,但我在使用客户端组件时遇到了一些困难。我首先支持企业防火墙,这意味着当NTLM身份验证工作并且suds获取Lists.asmx?WSDL包时,它将尝试在互联网上运行以获取Schema。它失败了。
所以,我想要一些代理帮助。我尝试了Client.set_options( proxy = d ),其中d是字典,而Suds抱怨如下:

Client.set_options( proxy = d )
TypeError: unbound method set_options() must be called with Client instance
   as first argument (got nothing instead)

任何想法?

1 个答案:

答案 0 :(得分:1)

编辑:所以我找到了解决这个问题的方法,可能/可能没有帮助OP,但在相同的情况下肯定帮助了我。 'NTML'修正了拼写错误。

解决方法是在本地缓存XMLSchema.xml文件(请参阅此处:suds and soaplib without internet access

import os.path
from suds.xsd import sxbasic
sxbasic.Import.bind('http://www.w3.org/2001/XMLSchema',
'file://' + os.path.join(ROOT_DIR, 'cache', 'suds', 'XMLSchema.xml'))

并在ROOT_DIR / cache / suds /中保存XMLSchema.xml的本地副本。

理想的解决方案是设置NTLM身份验证和suds的代理,但我还是没有想出如何做到这一点......