Mae Zeep angen y proxy cyn iddo ddarllen y WSDL
Crëwch sesiwn Requests a Transport Zeep cyn adeiladu Client o WSDL anghysbell.
Gall adeiladu Client Zeep o WSDL anghysbell nôl y ddogfen honno a'i fewnforion ar unwaith. Ffurfweddwch y Transport yn gyntaf, yn hytrach na gosod proxy ar ôl i Client fod eisoes wedi ceisio llwytho disgrifiad y gwasanaeth.
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 yw URL gwirioneddol disgrifiad y gwasanaeth. Os yw'r gwasanaeth hwnnw a'i fewnforion yn gyhoeddus ac os caniateir proxïau cyhoeddus, mae'r rhestr proxïau HTTP yn cynnig ymgeiswyr ar gyfer URLau proxy'r sesiwn. Cadwch y sesiwn wedi'i ffurfweddu'n fyw ar gyfer gweithrediadau SOAP dilynol, yna caewch hi pan fydd y gwaith hwnnw'n gorffen.
Mae Transport.timeout yn rheoli llwytho WSDL a XSD. Mae operation_timeout yn rheoli ceisiadau HTTP ar gyfer gweithrediadau'r gwasanaeth. Felly mae terfyn amser metadata wrth adeiladu Client yn gam gwahanol i alwad dull yn dod i ben yn ddiweddarach.
Yn yr enghraifft hon mae integreiddio amgylchedd Requests yn parhau'n weithredol. Os yw gwerthoedd proxy'r amgylchedd yn gwrthdaro â llwybr sy'n ofynnol yn benodol, defnyddiwch session.trust_env=False a darparwch unrhyw becyn CA a gosodiadau dilysu sydd eu hangen yn benodol.
Gwiriwch URL y ddogfen a fewnforiwyd pan fydd cychwyn yn dal i fethu. Gall WSDL lefel uchaf lwytho'n llwyddiannus tra bo sgema a fewnforiwyd yn defnyddio enw gwesteiwr neu brotocol cyrchfan arall.