Kuriant Zeep Client iš nuotolinio WSDL, tas dokumentas ir jo importai gali būti iš karto parsisiųsti. Pirmiausia sukonfigūruokite Transport, o ne nustatykite proxy po to, kai Client jau bandė įkelti paslaugos aprašymą.

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 yra tikrasis paslaugos aprašymo URL. Jei ta paslauga ir jos importai pasiekiami viešai, o viešieji proxy leidžiami, HTTP proxy sąrašas pateikia kandidatus sesijos proxy URL adresams. Išlaikykite sukonfigūruotą sesiją vėlesnėms SOAP operacijoms ir uždarykite ją, kai tas darbas baigsis.

Transport.timeout valdo WSDL ir XSD įkėlimą. operation_timeout valdo HTTP užklausas paslaugos operacijoms. Todėl metaduomenų skirtasis laikas kuriant Client yra kitas etapas nei vėliau pasibaigiantis metodo iškvietimas.

Šiame pavyzdyje Requestsi integracija su aplinka lieka aktyvi. Jei aplinkos proxy reikšmės prieštarauja aiškiai reikalingam maršrutui, naudokite session.trust_env=False ir aiškiai nurodykite reikiamą CA paketą bei autentifikavimo nustatymus.

Patikrinkite importuoto dokumento URL, jei inicijavimas vis dar nepavyksta. Aukščiausio lygio WSDL gali būti sėkmingai įkeltas, nors importuota schema naudoja kitą pagrindinio kompiuterio vardą arba paskirties protokolą.

Susiję straipsniai