使用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連接失敗:
這是為什麼呢?原來在公司內網設置了瀏覽器代理伺服器,想訪問外部網址必須經過代理伺服器才能訪問,公司代理伺服器地址: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)