我通过SOAP使用Suds进行RPC调用,客户端拒绝在调用之间进行缓存(导致等待客户端初始化等待30秒以上)。任何人都可以看到除了以下需要做什么才能启用缓存?
client = Client(WSDL_URL)
cache = client.options.cache
cache.setduration(days=10)
cache.setlocation(SUDS_CACHE_LOCATION)
答案 0 :(得分:0)
这可能是图书馆本身的一个错误。缓存文件需要以二进制模式写入。这可以在cache.py中修复:
1)在FileCache.put()中,更改以下行:
f = self.open(fn, 'w')
到
f = self.open(fn, 'wb')
2)在FileCache.getf()中,更改以下行:
return self.open(fn)
到
return self.open(fn, 'rb')
有关详细信息,请参阅:
Suds is not reusing cached WSDLs and XSDs, although I expect it to