python - 如果使用 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)
解决方案
您可以尝试像这样捕获代理错误:
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()
...
推荐阅读
- c# - 创建简单的c#网站
- typescript - 如何在 Visual Studio for Mac 中启用 Typescript 3 未知类型突出显示?
- html - 我们应该使用 CSS 子选择器还是基于 CSS 类的选择器?
- java - 如何暂停/休眠 Java 程序,直到单击按钮
- java - 当用户输入无效条目时发生错误异常,通过提供消息允许用户重试
- ios - Swift 如何从自定义 uicollectionviewcell 中获取数据?
- eclipse - 如何在 Eclipse 中安装 Erlide 时修复“收到致命警报:handshake_failure”错误
- python - 使用 JSON 键创建数据框
- c# - C# 使用公钥和私钥创建 RSA256 JWT
- mysql - 在开始新的更改操作之前缺少逗号。(靠近“字符集”)