Web服务通信期间的URLOpen错误

时间:2011-12-03 13:41:56

标签: python web-services suds

我必须开发一个应用程序,它将通过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>

我看不出有什么问题?

1 个答案:

答案 0 :(得分:0)

根据urlopen error [Errno 10060]进行一些搜索后,我决定尝试代理使用,结果证明是解决方案!

如果WSDL网址是

  

http://someurl.com:1234/something/somethingmore.asmx?WSDL

然后使用:

prxy = dict(http='http://someurl.com:1234/')
Client.set_options(proxy=prxy)

绝对解决了这个问题...