შორეული WSDL-იდან Zeep Client-ის აწყობამ შეიძლება დაუყოვნებლივ ჩამოტვირთოს ეს დოკუმენტი და მისი import-ები. ჯერ Transport დააკონფიგურირეთ, ნაცვლად იმისა, რომ პროქსი დააყენოთ მას შემდეგ, რაც 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. თუ ეს სერვისი და მისი import-ები საჯაროდ ხელმისაწვდომია და საჯარო პროქსები დაშვებულია, HTTP პროქსების სია სესიის პროქსი URL-ებისთვის კანდიდატებს გვაწვდის. შეინარჩუნეთ კონფიგურირებული სესია ცოცხალი შემდგომი SOAP ოპერაციებისთვის და დახურეთ ის, როცა ეს სამუშაო დასრულდება.

Transport.timeout აკონტროლებს WSDL-ისა და XSD-ის ჩატვირთვას. operation_timeout აკონტროლებს HTTP მოთხოვნებს სერვისის ოპერაციებისთვის. ამიტომ Client-ის აწყობის დროს მეტამონაცემების დროის ამოწურვა განსხვავებული ეტაპია, ვიდრე მეთოდის გამოძახების დროის ამოწურვა მოგვიანებით.

ამ მაგალითში Requests-ის გარემოს ინტეგრაცია აქტიური რჩება. თუ გარემოს პროქსის მნიშვნელობები ეწინააღმდეგება ცალსახად საჭირო მარშრუტს, გამოიყენეთ session.trust_env=False და ცალსახად მიაწოდეთ საჭირო CA პაკეტი და ავთენტიფიკაციის პარამეტრები.

შეამოწმეთ იმპორტირებული დოკუმენტის URL, თუ ინიციალიზაცია კვლავ ვერ ხერხდება. ზედა დონის WSDL შეიძლება წარმატებით ჩაიტვირთოს, მაშინ როცა იმპორტირებული schema სხვა hostname-ს ან დანიშნულების protocol-ს იყენებს.

დაკავშირებული სტატიები