python - 检测 Python 请求是否支持 SOCKS 代理的正确方法是什么?
问题描述
现代版本requests
支持开箱即用的 HTTP(S) 代理,以及SOCKS 代理。然而,后者是“一项可选功能,需要在使用前安装额外的第三方库。” PySocks是我熟悉的所有类 POSIX 平台上的适当第三方库。
我正在构建一个requests
与用户可配置代理一起使用的应用程序,并试图弄清楚如何测试本地安装的requests
.
据我所知,requests
API 不包含检查此支持的内置函数,但是当库尝试实际使用SOCKS5 代理时,它会引发异常InvalidSchema("Missing dependencies for SOCKS support.")
。
我想出了以下咒语来尝试在requests
使用它们之前测试是否支持 SOCKS 代理......</p>
try:
requests.adapters.SOCKSProxyManager('socks5://')
have_socks = True
except requests.exceptions.InvalidSchema:
have_socks = False
这似乎工作正常(用requests
2.22.0 测试),但似乎不是特别面向未来。
在使用之前,是否有更好(更简单、更安全、更面向未来)的方法来测试 SOCKS 支持requests
?
解决方案
推荐阅读
- vue.js - 如何使用 Vuejs 在另一个应用程序中导入应用程序
- javascript - 如何在数组中的两项后隐藏元素?
- shell - 在 POSIX Shell 中匹配扩展的正则表达式
- php - 隐藏 php 扩展名而不删除实际文件中的 .php
- python - 如何阻止向数据库python添加相同值的可能性?
- angular - 如何在 IONIC 4 中为我的所有页面设置一个通用标题组件?
- flutter - 我可以在应用程序启动时显示模态底页吗?
- python - int 和 string txt 的分类抛出 ValueError: Number of features of the model must match the input。模型 n_features
- visual-studio-code - 如何在 VS Code 中加粗和斜体对象键?
- maven - 运行maven时编译问题