【问题标题】:PYTHON-SUDS DocumentPlugin loaded method not being called未调用 PYTHON-SUDS DocumentPlugin 加载的方法
【发布时间】:2013-01-16 14:08:20
【问题描述】:

如果这是一个微不足道的问题,请原谅我。我正在尝试使用 Exchange Web Service (EWS) 和 suds 0.4 版阅读电子邮件。由于我需要在 suds 创建服务之前修改 WSDL,因此我使用下面的代码尝试在 suds 解析之前修改 WSDL。但是据我所知,插件的加载方法没有被调用。

谁能告诉我我做错了什么?我曾尝试使用 suds-ews,但它似乎已过时,因为我无法将属性插入方法中。

class AddService(DocumentPlugin):
    # WARNING: suds hides exceptions in plugins
    def loaded(self, ctx):
        print "help"
        return ctx

client = Client("https://server/EWS/Services.wsdl",
                plugins=[AddService(),])

谢谢

【问题讨论】:

  • 只有我的两分钱,我从来没有碰过泡沫。您是否尝试过 SOAPpy 或任何其他模块?
  • 不,我没有。我最初的研究给我的印象是 suds 可能是最新的库。
  • FWIW,我成功地按照您描述的方式使用了一个插件。您的代码和我的代码之间的唯一区别是我返回 None 而不是上下文,但我怀疑这很重要。

标签: python exchangewebservices suds


【解决方案1】:

很可能是因为 suds 已经缓存了解析后的 WSDL:

https://fedorahosted.org/suds/wiki/Documentation#PERFORMANCE

因此,您可以通过在 Client() 调用中添加 cache=None 来清除临时目录或完全禁用缓存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多