Zeep ត្រូវការ proxy មុនពេលវាអាន WSDL
បង្កើតសម័យ Requests និង 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 របស់វាអាចចូលប្រើបានជាសាធារណៈ ហើយ proxy សាធារណៈត្រូវបានអនុញ្ញាត បញ្ជី proxy HTTP ផ្តល់បេក្ខជនសម្រាប់ URL proxy របស់សម័យ។ រក្សាសម័យដែលបានកំណត់ឱ្យនៅរស់សម្រាប់ប្រតិបត្តិការ SOAP បន្ទាប់ បន្ទាប់មកបិទវានៅពេលការងារនោះបញ្ចប់។
Transport.timeout គ្រប់គ្រងការផ្ទុក WSDL និង XSD។ operation_timeout គ្រប់គ្រងសំណើ HTTP សម្រាប់ប្រតិបត្តិការសេវា។ ដូច្នេះការអស់ពេល metadata អំឡុងពេលសាងសង់ Client គឺជាដំណាក់កាលខុសគ្នាពីការអស់ពេលនៃការហៅវិធីសាស្ត្រនៅពេលក្រោយ។
ក្នុងឧទាហរណ៍នេះ ការរួមបញ្ចូលបរិស្ថាន របស់ Requests នៅតែសកម្ម។ ប្រសិនបើតម្លៃ proxy បរិស្ថានប៉ះទង្គិចនឹងផ្លូវដែលត្រូវការច្បាស់លាស់ សូមប្រើ session.trust_env=False ហើយផ្តល់ CA bundle និងការកំណត់ authentication ដែលត្រូវការច្បាស់លាស់។
ពិនិត្យ URL នៃឯកសារដែលបាន import នៅពេលការចាប់ផ្តើមនៅតែបរាជ័យ។ WSDL កម្រិតកំពូលអាចផ្ទុកបានដោយជោគជ័យ ខណៈ schema ដែលបាន import ប្រើ hostname ឬ protocol គោលដៅផ្សេង។