我一直在尝试修改 suds.transport 的回复类。
我尝试了以下方法:
import suds.transport
old_reply = suds.transport.Reply
class Reply2:
"""
A transport reply
@ivar code: The http code returned.
@type code: int
@ivar message: The message to be sent in a POST request.
@type message: str
@ivar headers: The http headers to be used for the request.
@type headers: dict
"""
def __init__(self, code, headers, message):
"""
@param code: The http code returned.
@type code: int
@param headers: The http returned headers.
@type headers: dict
@param message: The (optional) reply message received.
@type message: str
"""
print 'hello, i patched the class'
self.code = code
self.headers = headers
self.message = message
def __str__(self):
s = []
s.append('CODE: %s' % self.code)
s.append('HEADERS: %s' % self.headers)
s.append('MESSAGE:')
s.append(self.message)
return '\n'.join(s)
suds.transport.Reply = Reply2
执行client
请求时(就像您通常使用 Suds 一样),使用默认回复而不是修补的回复。
这种方法失败的原因可能是什么?
注意:似乎__init__
单独修补确实会产生更好的结果。但我需要修改课堂上的更多行为。最后,我试图覆盖回复以获取传入的附件,就像在 SO和解决方案上问的一样