我必须开发一个应用程序,它将通过python与Web服务进行通信。由于某些原因,我必须在Windows服务器上运行此代码(我没有太多体验,通常我们使用基于uint的系统)。
我与api提供商的沟通不是直接因为某些通信发布。因此,我必须将我的问题邮寄给另一个人,并用母语向我们发送电子邮件,因此我无法得到提供商的大力支持。
我的问题是,我将suds
用于Web服务客户端。 Cleint选择成功从服务器获取WSDL定义,如:
from suds.client import Client
class SomeClass(Client):
def __init__(self):
Client.__init__(url)
def myFunc():
f = SomeClass()
print f
服务(运输)tns =“...”
前缀(1)ns0 = ....
Ports (2): (TransportSoap) Methods (4) GetBalance()
...
所以我可以看到suds
可以访问目标Web服务并获取WSDL文件。但是,当我调用类似的方法时:
def myFunc():
f = SomeClass()
f.GetBalance()
Urllib2.URLError <urlopen error [Errno 10060] A connection attempt
failed because the connected party did not properly respond after a
period of time, or established connection failed because connected
host has failed to respond>
我看不出有什么问题?
答案 0 :(得分:0)
根据urlopen error [Errno 10060]
进行一些搜索后,我决定尝试代理使用,结果证明是解决方案!
如果WSDL网址是
然后使用:
prxy = dict(http='http://someurl.com:1234/')
Client.set_options(proxy=prxy)
绝对解决了这个问题...