Zeep-ին proxy է պետք WSDL-ը կարդալուց առաջ
Ստեղծեք Requests սեսիան և Zeep Transport-ը նախքան հեռավոր WSDL-ից Client կառուցելը։
Հեռավոր 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։