Kailangan ng Zeep ang proxy bago basahin ang WSDL
Gumawa ng Requests session at Zeep Transport bago bumuo ng Client mula sa malayong WSDL.
Ang pagbuo ng Zeep Client mula sa malayong WSDL ay maaaring agad na kunin ang dokumentong iyon at ang mga import nito. I-configure muna ang Transport, sa halip na magtakda ng proxy pagkatapos na sinubukan na ng Client na i-load ang paglalarawan ng serbisyo.
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)
Ang wsdl_url ang aktwal na URL ng paglalarawan ng serbisyo. Kung ang serbisyong iyon at ang mga import nito ay pampublikong naaabot at pinapayagan ang mga pampublikong proxy, ang listahan ng proxy ng HTTP ay nagbibigay ng mga kandidato para sa mga proxy URL ng session. Panatilihing buhay ang naka-configure na session para sa mga susunod na operasyon ng SOAP, pagkatapos ay isara ito kapag natapos ang gawaing iyon.
Kinokontrol ng Transport.timeout ang pag-load ng WSDL at XSD. Kinokontrol ng operation_timeout ang mga kahilingan ng HTTP para sa mga operasyon ng serbisyo. Kaya ang timeout ng metadata habang bumubuo ng Client ay ibang yugto kaysa sa timeout ng tawag sa method mamaya.
Sa halimbawang ito, nananatiling aktibo ang integradong pangkapaligiran ng Requests. Kung ang mga halaga ng proxy ng kapaligiran ay sumasalungat sa isang rutang hayagang kailangan, gamitin ang session.trust_env=False at hayagang ibigay ang kinakailangang CA bundle at mga setting ng authentication.
Suriin ang URL ng na-import na dokumento kapag nabigo pa rin ang pagsisimula. Ang WSDL sa pinakamataas na antas ay maaaring mag-load nang matagumpay habang ang na-import na schema ay gumagamit ng ibang hostname o protocol ng patutunguhan.