Membangun Zeep Client dari WSDL jarak jauh dapat langsung mengambil dokumen itu dan import-nya. Konfigurasikan Transport terlebih dahulu, bukan menetapkan proxy setelah Client sudah mencoba memuat deskripsi layanan.

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 adalah URL sebenarnya dari deskripsi layanan. Jika layanan itu dan import-nya dapat dijangkau publik dan proxy publik diizinkan, daftar proxy HTTP menyediakan kandidat untuk URL proxy sesi. Pertahankan sesi yang dikonfigurasi tetap hidup untuk operasi SOAP berikutnya, lalu tutup saat pekerjaan itu selesai.

Transport.timeout mengatur pemuatan WSDL dan XSD. operation_timeout mengatur permintaan HTTP untuk operasi layanan. Karena itu, timeout metadata saat membangun Client adalah tahap yang berbeda dari timeout pemanggilan metode di kemudian hari.

Dalam contoh ini, integrasi lingkungan Requests tetap aktif. Jika nilai proxy lingkungan bertentangan dengan rute yang secara eksplisit diperlukan, gunakan session.trust_env=False dan sediakan bundel CA serta pengaturan autentikasi yang diperlukan secara eksplisit.

Periksa URL dokumen yang diimpor saat inisialisasi masih gagal. WSDL tingkat atas dapat dimuat dengan berhasil sementara schema yang diimpor memakai nama host atau protokol tujuan lain.

Artikel terkait