Հեռավոր 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։

Առնչվող հոդվածներ