Zeep ਨੂੰ WSDL ਪੜ੍ਹਨ ਤੋਂ ਪਹਿਲਾਂ ਪ੍ਰੌਕਸੀ ਚਾਹੀਦੀ ਹੈ
ਦੂਰ ਦੇ WSDL ਤੋਂ Client ਬਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ Requests ਸੈਸ਼ਨ ਅਤੇ Zeep Transport ਬਣਾਓ।
ਦੂਰ ਦੇ WSDL ਤੋਂ Zeep Client ਬਣਾਉਣ ਨਾਲ ਉਹ ਦਸਤਾਵੇਜ਼ ਅਤੇ ਉਸ ਦੇ import ਤੁਰੰਤ ਆ ਸਕਦੇ ਹਨ। Client ਵੱਲੋਂ ਸੇਵਾ ਵੇਰਵਾ ਲੋਡ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਬਾਅਦ ਪ੍ਰੌਕਸੀ ਸੈੱਟ ਕਰਨ ਦੀ ਥਾਂ ਪਹਿਲਾਂ Transport ਕਨਫਿਗਰ ਕਰੋ।
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 ਬੰਡਲ ਤੇ authentication ਸੈਟਿੰਗਾਂ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਦਿਓ।
ਜੇ ਇਨੀਸ਼ੀਅਲਾਈਜ਼ੇਸ਼ਨ ਅਜੇ ਵੀ ਅਸਫਲ ਹੁੰਦਾ ਹੈ ਤਾਂ import ਕੀਤੇ ਦਸਤਾਵੇਜ਼ ਦਾ URL ਜਾਂਚੋ। ਉੱਪਰਲੇ ਪੱਧਰ ਦਾ WSDL ਸਫਲਤਾਪੂਰਵਕ ਲੋਡ ਹੋ ਸਕਦਾ ਹੈ, ਪਰ import ਕੀਤੀ schema ਕੋਈ ਹੋਰ hostname ਜਾਂ ਗੰਤਵਯ protocol ਵਰਤਦੀ ਹੋ ਸਕਦੀ ਹੈ।