Zeep му треба прокси пред да го прочита WSDL
Создајте сесија на Requests и Zeep Transport пред да изградите Client од далечински WSDL.
Изградбата на Zeep Client од далечински WSDL може веднаш да го преземе тој документ и неговите import. Конфигурирајте го Transport прво, наместо да поставувате прокси откако Client веќе се обидел да го вчита описот на услугата.
from requests import Session
from zeep import Client
from zeep.transports import Transport
session = Session()
session.proxies.update({
"http": "http://proxy.example.net:8080",
"https": "http://proxy.example.net:8080",
})
transport = Transport(
session=session,
timeout=10,
operation_timeout=30,
)
client = Client(wsdl_url, transport=transport)
wsdl_url е вистинската URL на описот на услугата. Ако таа услуга и нејзините import се јавно достапни и јавните проксија се дозволени, списокот на HTTP проксија обезбедува кандидати за прокси URL-адресите на сесијата. Одржувајте ја конфигурираната сесија активна за следните SOAP операции, а потоа затворете ја кога таа работа завршува.
Transport.timeout го контролира вчитувањето на WSDL и XSD. operation_timeout ги контролира HTTP барањата за операциите на услугата. Затоа истекувањето на времето за метаподатоци при изградба на Client е различна фаза од подоцнежното истекување на повик на метод.
Во овој пример интеграцијата со околината на Requests останува активна. Ако вредностите на проксито од околината се во конфликт со експлицитно потребна рута, користете session.trust_env=False и експлицитно наведете го потребниот CA пакет и поставките за автентикација.
Проверете ја URL на увезениот документ кога иницијализацијата сè уште не успева. Врвен WSDL може успешно да се вчита додека увезената шема користи друго име на домаќин или протокол на одредиште.