Uzak bir WSDL'den Zeep Client oluşturmak, o belgeyi ve import'larını hemen getirebilir. Client hizmet tanımını yüklemeye çalıştıktan sonra proxy ayarlamak yerine önce Transport'u yapılandırın.

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, hizmet tanımının gerçek URL'sidir. Bu hizmet ve import'ları herkese açıksa ve genel proxy'lere izin veriliyorsa, HTTP proxy listesi oturumun proxy URL'leri için adaylar sağlar. Yapılandırılmış oturumu sonraki SOAP işlemleri için açık tutun, bu iş bitince kapatın.

Transport.timeout, WSDL ve XSD yüklemesini denetler. operation_timeout, hizmet işlemleri için yapılan HTTP isteklerini denetler. Bu nedenle Client oluşturulurken yaşanan bir meta veri zaman aşımı, daha sonra bir yöntem çağrısının zaman aşımına uğramasından farklı bir aşamadır.

Bu örnekte Requests'in ortam entegrasyonu etkin kalır. Ortam proxy değerleri açıkça gereken bir rotayla çakışıyorsa session.trust_env=False kullanın ve gereken CA paketini ve kimlik doğrulama ayarlarını açıkça belirtin.

Başlatma hâlâ başarısız oluyorsa, import edilen belgenin URL'sini kontrol edin. Üst düzey bir WSDL başarıyla yüklenebilirken import edilen bir şema başka bir ana bilgisayar adı veya hedef protokol kullanıyor olabilir.

İlgili makaleler