问题描述
我正在尝试使用插件对发送进行修改.
I am trying to use a plugin doing modification on sending.
修改完成,但suds在修改前发送肥皂.
Modification are done, but suds sends the soap before the modification.
在对我的插件进行长时间搜索后,我最终查看了 suds 来源.
After a long search into my plugin, I finish by looking the suds sources.
进入client.py文件,send
函数调用插件:
Into the client.py file, the send
function calls the plugins:
plugins.message.sending(envelope=soapenv)
但是在这个调用之后soapenv仍然和以前一样.
but after this call soapenv is still as previous.
当插件返回 ctx 时,我修补
As plugins return the ctx, I patch with
res = plugins.message.sending(envelope=soapenv)
soapenv = res.envelope
它现在按预期工作.由于 soapenv 是一个字符串,我认为 Python 按值传递它,所以我不明白没有这种补丁它是如何工作的.
and it is now working as expected. As soapenv is a string, I think Python pass it by value so I don't get how it can work without this kind of patch.
为什么我需要这个补丁?我做错了什么?
Why I need this patch ? What I am doing wrong ?
使用的版本:
Python 2.7.9(默认,2016 年 6 月 29 日,13:08:31)[GCC 4.9.2] 在 linux2 上
Python 2.7.9 (default, Jun 29 2016, 13:08:31)[GCC 4.9.2] on linux2
泡沫 (0.4)
推荐答案
sud 不应该用,jurko fork 更好,解决这个问题
Sud should not be used, jurko fork is better and fix this issue
这篇关于Suds 客户端忽略插件对发送方法所做的修改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!