我正在使用python suds库来创建基于本地wsdl文件的SOAP客户端.我的目标是使用Twisted作为后端,因此我以异步方式查询SOAP服务器.
我知道这个主题已被覆盖不同的时间(here1,here2),但我仍然有一些问题.
我已经看到三种不同的方法来使用与肥皂混合:
a)将此补丁应用于suds库.
b)使用tw-suds,这是肥皂水.
c)受到这篇文章的影响,我Client_Async使用扭曲deferToThread操作实现了suds客户端(在这里可以找到完全工作的要点.我还实现了一个Client_Syncsuds客户端以做一些基准测试)
# Init approach c) code
from suds.client import Client as SudsClient
from twisted.internet.threads import deferToThread
class MyClient(SudsClient):
def handleFailure(self, f, key, stats):
stats.stop_stamp(error=True)
logging.error("%s. Failure: %s" % (key, str(f)))
def handleResult(self, result, key, stats):
stats.stop_stamp(error=False)
success, text, res = False, None, None
try:
success = result.MessageResult.MessageResultCode == 200
text = result.MessageResult.MessageResultText
res = result.FooBar …Run Code Online (Sandbox Code Playgroud)