1.ProxyError(当不需要配置代理出现代理错误)
requests.exceptions.ProxyError: HTTPSConnectionPool(host=’***.com’, port=443): Max retries exceeded with url: /***.detail.json (Caused by ProxyError(‘Cannot connect to proxy.’, error(‘Tunnel connection failed: 504 Gateway Time-out’,)))
查询内网数据,没有添加代理设置,但是一直提示代理错误,不论在pycharm还是命令行环境,都出现这个错误
看看环境变量里有没有http_proxy和https_proxy,查看,如果可以的话删除这两个变量,运行查看结果。
有尝试去设置pycharm编辑器的代理,能够连接内网,没有解决,因为本来就能连接内网,是环境配置的问题。
2.requests-Proxy
import requests
proxies = {'http': 'http://***:8080', 'https': 'http://***:8080'}
url = 'https://***.com'
requests.post(url, proxies=proxies, verify=False) #verify是否验证服务器的SSL证书
verify=False,在执行的时候会出现警告,显示在执行结果中
解决办法:https://www.cnblogs.com/xiaogongjin/p/11882295.html
但是这个proxies选项并没有效果(因为我访问的网页不需要我去添加代理),但。
3.SSLError
raise ssl.SSLError(‘bad handshake: %r’ % e)
ssl.SSLError: (“bad handshake: Error([(‘SSL routines’, ‘SSL23_GET_SERVER_HELLO’, ‘unknown protocol’)],)”,)
通过第一步,删掉环境变量后,代码不出现ProxyError,但是出现了SSLError,SSL连接建立问题。
unknown protocol 不认识的协议,一般是错误的URL地址造成的。
将原本地址应该是https://---->改成http:// ,执行正确。
尝试过下面这种方法,但是没有解决上面的问题,可能是因为我没有全部都按照做了,只做了一部分:https://www.cnblogs.com/ajianbeyourself/p/11156271.html
- 将verify设为False,不验证certificate
- 更新系统的certificate。
- 指定系统certificate的路径
- 使用certifi的certitificate路径
- 安装requests的security extras