Unable to connect to SOAP API with proxy setting

2019-05-14 16:43发布

问题:

I'm using requests and zeep library to connect to a server using SOAP API. If I manually set the internet proxy, I can connect. However, I intend to use proxy setting in my script to automate the process. I'm using the following block of code to do that, but I'm getting the error below. Can anyone pls help me where am I making the mistake?

ConnectionError: HTTPSConnectionPool(host='xxxl.com', port=443): Max retries exceeded with url: /webservice.php?wsdl (Caused by NewConnectionError(': Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it',))

from requests import Session
from requests.auth import HTTPBasicAuth  
from zeep import Client
from zeep.transports import Transport

session = Session()
session.proxies = {'http': 'http://abcdef.com:80'}
session.auth = HTTPBasicAuth('username', 'passwd')
client = Client('https://abcxyz.com/webservice.php?wsdl',
    transport=Transport(session=session))

回答1:

Use your proxy authentication to handle the proxy with requests, not the session auth. Set the proxies with user:pass:

proxies = {
    "http": "user:pass@your_proxy:port",
    "https": "user:pass@your_proxy:port",
}