Membina Zeep Client daripada WSDL jauh boleh mengambil dokumen itu dan import-nya serta-merta. Konfigurasikan Transport dahulu, bukan menetapkan proxy selepas Client sudah cuba memuatkan perihalan perkhidmatan.

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 ialah URL sebenar perihalan perkhidmatan. Jika perkhidmatan itu dan import-nya boleh dicapai secara umum dan proxy awam dibenarkan, senarai proxy HTTP menyediakan calon untuk URL proxy sesi. Kekalkan sesi yang dikonfigurasikan untuk operasi SOAP seterusnya, kemudian tutupnya apabila kerja itu tamat.

Transport.timeout mengawal pemuatan WSDL dan XSD. operation_timeout mengawal permintaan HTTP untuk operasi perkhidmatan. Oleh itu, tamat masa metadata semasa pembinaan Client ialah peringkat berbeza daripada tamat masa panggilan kaedah kemudian.

Dalam contoh ini, integrasi persekitaran Requests kekal aktif. Jika nilai proxy persekitaran bercanggah dengan laluan yang diperlukan secara eksplisit, gunakan session.trust_env=False dan berikan bundel CA serta tetapan pengesahan yang diperlukan secara eksplisit.

Semak URL dokumen yang diimport apabila pemulaan masih gagal. WSDL peringkat atas boleh dimuatkan dengan jayanya sementara skema yang diimport menggunakan nama hos atau protokol destinasi lain.

Artikel berkaitan