首页 > 解决方案 > 如果使用 python requests.Session() 不可用,则绕过代理

问题描述

我正在创建一个访问互联网 URL 的软件。该软件将在 2 台 PC 上使用,其中一台在代理后面。

要通过代理访问 URL,我编写了以下代码:

proxies = {'https': 'https://my.proxy.server:1111'}
s = requests.Session()
s.proxies.update(proxies)
loginResponse = s.post(loginUrl, data=login_data, headers= headers)

此代码在代理后面的计算机上运行良好,但在其他计算机(无需代理即可访问互联网)上出现错误:Can't connect to proxy。这是可以理解的。

我的问题是如何修改此代码以便它可以在两台计算机上运行?我想要的是实现这样的事情:

proxy_server = XXXX
s = requests.Session()
s.proxies.update(proxy_server)

    if proxy_server not available : 
      s = requests.Session()

loginResponse = s.post(loginUrl, data=login_data, headers= headers)

标签: pythonpython-3.xsessionproxypython-requests

解决方案


您可以尝试像这样捕获代理错误:

proxy_server = XXXX
s = requests.Session()
s.proxies.update(proxy_server)

try:
    loginResponse = s.post(loginUrl, data=login_data, headers= headers)
except requests.exceptions.ProxyError as err:
    s = requests.Session()
    ...

推荐阅读