Uzaq WSDL-dən Zeep Client qurmaq həmin sənədi və onun importlarını dərhal gətirə bilər. Client artıq xidmət təsvirini yükləməyə çalışdıqdan sonra proxy təyin etmək əvəzinə, Transport-u əvvəlcədən konfiqurasiya edin.

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 faktiki xidmət təsviri URL-idir. Əgər bu xidmət və onun importları açıq şəkildə əlçatandırsa və açıq proxy-lərə icazə verilirsə, HTTP proxy siyahısı sessiyanın proxy URL-ləri üçün namizədlər təqdim edir. Konfiqurasiya edilmiş sessiyanı sonrakı SOAP əməliyyatları üçün açıq saxlayın, sonra bu iş bitdikdə bağlayın.

Transport.timeout WSDL və XSD yüklənməsini idarə edir. operation_timeout xidmət əməliyyatları üçün HTTP sorğularını idarə edir. Buna görə Client qurularkən baş verən metadata timeout sonradan metod çağırışının timeoutundan fərqli mərhələdir.

Bu nümunədə Requests-in mühit inteqrasiyası aktiv qalır. Əgər mühit proxy dəyərləri açıq şəkildə tələb olunan marşrutla ziddiyyət təşkil edirsə, session.trust_env=False istifadə edin və lazımi CA paketini və autentifikasiya parametrlərini açıq şəkildə təmin edin.

Əgər işəsalma hələ də uğursuz olarsa, import edilmiş sənədin URL-ini yoxlayın. Yuxarı səviyyəli WSDL uğurla yüklənə bilər, halbuki import edilmiş sxem başqa hostname və ya təyinat protokolu istifadə edir.

Əlaqəli məqalələr