Zeep ຕ້ອງການ proxy ກ່ອນອ່ານ WSDL
ສ້າງ Requests session ແລະ Zeep Transport ກ່ອນສ້າງ Client ຈາກ WSDL ທາງໄກ.
ການສ້າງ Zeep Client ຈາກ WSDL ທາງໄກສາມາດດຶງເອກະສານນັ້ນ ແລະ import ຂອງມັນທັນທີ. ຕັ້ງຄ່າ Transport ກ່ອນ ແທນທີ່ຈະຕັ້ງ proxy ຫຼັງຈາກ 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 ຂອງມັນເຂົ້າເຖິງໄດ້ທາງສາທາລະນະ ແລະ ອະນຸຍາດ public proxy, ລາຍຊື່ proxy HTTP ສະໜອງຜູ້ສະໝັກສຳລັບ proxy URL ຂອງ session. ຮັກສາ session ທີ່ຕັ້ງຄ່າໄວ້ໃຫ້ມີຊີວິດສຳລັບ SOAP operation ຕໍ່ໄປ ແລ້ວປິດມັນເມື່ອວຽກນັ້ນສິ້ນສຸດ.
Transport.timeout ຄວບຄຸມການໂຫຼດ WSDL ແລະ XSD. operation_timeout ຄວບຄຸມຄຳຮ້ອງ HTTP ສຳລັບ operation ຂອງບໍລິການ. ດັ່ງນັ້ນ timeout ຂອງ metadata ເວລາສ້າງ Client ແມ່ນຂັ້ນຕອນທີ່ແຕກຕ່າງຈາກ timeout ຂອງການເອີ້ນ method ພາຍຫຼັງ.
ການລວມກັບສະພາບແວດລ້ອມ ຂອງ Requests ຍັງເຮັດວຽກຢູ່ໃນຕົວຢ່າງນີ້. ຖ້າຄ່າ proxy ຂອງສະພາບແວດລ້ອມຂັດກັບເສັ້ນທາງທີ່ຕ້ອງການຢ່າງຊັດເຈນ, ໃຊ້ session.trust_env=False ແລະ ສະໜອງ CA bundle ແລະ ການຕັ້ງຄ່າ authentication ທີ່ຕ້ອງການຢ່າງຊັດເຈນ.
ກວດເບິ່ງ URL ຂອງເອກະສານທີ່ import ເມື່ອການເລີ່ມຕົ້ນຍັງລົ້ມເຫຼວ. WSDL ລະດັບເທິງອາດໂຫຼດໄດ້ສຳເລັດ ໃນຂະນະທີ່ schema ທີ່ import ໃຊ້ hostname ຫຼື protocol ປາຍທາງອື່ນ.