يحتاج Zeep إلى الوكيل قبل أن يقرأ WSDL
أنشئ جلسة Requests وناقل Zeep قبل إنشاء Client من WSDL بعيد.
قد يجلب إنشاء Zeep Client من WSDL بعيد ذلك المستند واستيراداته فورًا. اضبط الناقل أولًا بدلًا من تعيين وكيل بعد أن يكون 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 الفعلي لوصف الخدمة. إذا كانت تلك الخدمة واستيراداتها متاحة للعموم وكانت الوكلاء العامة مسموحًا بها، فإن قائمة وكلاء HTTP توفر مرشحين لعناوين URL الوكيل الخاصة بالجلسة. أبقِ الجلسة المهيأة حية لعمليات SOAP اللاحقة، ثم أغلقها عند انتهاء هذا العمل.
يتحكم Transport.timeout في تحميل WSDL وXSD. ويتحكم operation_timeout في طلبات HTTP الخاصة بعمليات الخدمة. لذلك فإن مهلة البيانات الوصفية أثناء إنشاء Client مرحلة مختلفة عن مهلة استدعاء أسلوب لاحقًا.
يظل تكامل البيئة في Requests نشطًا في هذا المثال. إذا تعارضت قيم وكيل البيئة مع مسار مطلوب صراحةً، فاستخدم session.trust_env=False ووفّر حزمة CA وإعدادات المصادقة اللازمة صراحةً.
تحقق من عنوان URL للمستند المستورد عندما يفشل التهيئة رغم ذلك. قد يُحمَّل WSDL الأعلى بنجاح بينما يستخدم مخطط مستورد اسم مضيف أو بروتوكول وجهة آخر.