Gradnja Zeep Clienta iz oddaljenega WSDL lahko takoj prenese ta dokument in njegove importe. Najprej konfigurirajte Transport, namesto da bi proxy nastavili potem, ko je Client že poskusil naložiti opis storitve.

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 je dejanski URL opisa storitve. Če sta ta storitev in njeni importi javno dostopni in so javni proxyji dovoljeni, seznam proxyjev HTTP ponuja kandidate za proxy URL-je seje. Ohranjajte konfigurirano sejo aktivno za nadaljnje operacije SOAP in jo zaprite, ko je to delo končano.

Transport.timeout nadzoruje nalaganje WSDL in XSD. operation_timeout nadzoruje zahteve HTTP za operacije storitve. Zato je časovna omejitev metapodatkov med gradnjo Clienta druga faza kot poznejša časovna omejitev klica metode.

V tem primeru integracija z okoljem Requests ostane aktivna. Če se vrednosti proxyja iz okolja spopadajo z izrecno zahtevano potjo, uporabite session.trust_env=False in izrecno navedite potreben paket CA ter nastavitve preverjanja pristnosti.

Preverite URL uvoženega dokumenta, ko inicializacija še vedno ne uspe. WSDL najvišje ravni se lahko uspešno naloži, medtem ko uvožena shema uporablja drugo ime gostitelja ali ciljni protokol.

Sorodni članki