使用suds和代理发送数据耗时巨大
我有一段代码是用suds通过代理发送数据的:
import suds
t = suds.transport.http.HttpTransport()
proxy = urllib2.ProxyHandler({'http': 'http://192.168.3.217:3128'})
opener = urllib2.build_opener(proxy)
t.urlopener = opener
ws = suds.client.Client('http://xxxxxxx/web.asmx?WSDL', transport=t)
req = ws.factory.create('ActionRequest.request')
req.SerialNumber = 'asdf'
req.HostName = 'hola'
res = ws.service.ActionRequest(req)
我不知道为什么,有时候发送数据需要2到3分钟,甚至更久,这时会出现“网关超时”的错误。如果不使用代理,发送数据的时间一般在2秒以内。这里是SOAP的回复:
(ActionResponse){
Id = None
Action = "Action.None"
Objects = ""
}
这个代理在用urllib2发送其他请求时运行正常,或者在像火狐这样的普通浏览器中也没问题。
有没有人知道suds在这里发生了什么情况?
非常感谢大家的帮助!!!
1 个回答
0
抓包工具的输出(比如wireshark的结果)对理解这个问题会非常有帮助。