Ошибка URLOpen во время связи с веб-службой - PullRequest
0 голосов
/ 03 декабря 2011

Мне пришлось разработать приложение, которое будет взаимодействовать с веб-сервисом через Python. Я должен выполнить этот код на компьютере с Windows-сервером по некоторым причинам (с которыми я не особо разбираюсь, обычно мы используем системы на основе uint).

Мое общение с провайдером API не происходит напрямую из-за некоторых проблем со связью. Поэтому я должен отправить мои проблемы другому человеку, и он отправит им по электронной почте мое сообщение на родном языке, поэтому я не смог получить большую поддержку от поставщика.

Моя проблема в том, что я использую suds для клиента веб-службы. Клинт решил, что ему удастся получить определение WSDL от сервера, например:

from suds.client import Client

class SomeClass(Client):
    def __init__(self):
        Client.__init__(url)

def myFunc():
    f = SomeClass()
    print f

Сервис (транспорт) тнс = "..."

Префиксы (1) ns0 = ....

Ports (2):

    (TransportSoap) 

         Methods (4) 

             GetBalance()

...

Итак, я вижу, что suds может достичь целевого веб-сервиса и получить файл 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 голосов
/ 05 декабря 2011

После некоторого поиска, основанного на urlopen error [Errno 10060], я решил попробовать использование прокси , и оно оказалось решением!

Если URL WSDL равен

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

, затем использование:

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

определенно решает проблему ...

...