欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

requests 处理异常错误 requests.exceptions.ConnectionError HTTPSConnectionPool [Errno 10060]

程序员文章站 2022-03-13 09:18:48
使用python requests模块调用vmallarg.vmall.com接口API时报如下错误: requests.exceptions.ConnectionError: HTTPSConnectionPool(host='vmallrag.vmall.com', port=443): Max ......
  使用python requests模块调用vmallarg.vmall.com接口api时报如下错误:
requests.exceptions.connectionerror: httpsconnectionpool(host='vmallrag.vmall.com', port=443): max retries exceeded with url: .... (caused by new connectionerror('ect at 0x01c3da10>: failed to establish a new connection: [errno 10060] ',))
 
测试场景:
  在postman中调用时可以成功返回,在浏览器中也可以成功访问该网址。
 
然而在dos下telnet连接失败:
requests 处理异常错误 requests.exceptions.ConnectionError HTTPSConnectionPool [Errno 10060]

 

这是为什么呢?原来在公司内网设置了浏览器代理服务器,想访问外部网址必须经过代理服务器才能访问,公司代理服务器地址:xx.aa.com 端口:8080(这个代理在ie设置局域网中可以看到)

 

所以在requests中设置对应的代理就能连接正常了,代理设置如下:

  https的请求代理:proxy = {"https":"xx.aa.com:8080"},http的请求代理: proxy = {"http":"xx.aa.com:8080"},或者http/https的一并设置:proxy={"https":"xx.aa.com:8080","http":"xx.aa.com:8080"}

然后在requests的get、post方法中指定如下:
  requests.get(url, proxies=proxy)
  requests.post(url, proxies=proxy)