我一直在搜索这几天无济于事。我有一个python bot(轮询更新)在家里或任何公共互联网运行正常。但是,在防火墙后工作时,机器人无法连接到服务器。我相信应用程序必须知道代理服务器,用户ID和密码才能继续。但我无法找到方法或如何在bot应用程序中包含此信息。以下是错误消息:
2017-03-13 07:13:44,233 - telegram.ext.updater - ERROR - Error
while getting Updates: urllib3 HTTPError HTTPSConnectionPool
(host='api.telegram.org', port=443):Max retries exceeded with
url: /botXXXXXXXXX:Token/getUpdates (Caused byNewConnectionError
('<urllib3.connection.VerifiedHTTPSConnection object at 0x031541F0>:
Failed to establish a new connection: [Errno 10061] No connection
could be made because the target machine actively refused it',))
/ getUpdates(由NewConnectionError('引起)
其他的事情:Telegram messenger应用程序在这个相同的防火墙后运行正常,代理服务器上没有任何信息。所以它可以毫无问题地连接到服务器。我之所以提到这一点是因为另一个原因可能是我的公司使用websense或类似的东西来阻止电报服务器,但事实并非如此,因为信使应用程序可以正常工作。
提前感谢一百万提示。
2017年7月26日更新:解决方案如Sudheesh所述。需要设置环境变量https_proxy。在这个答案的时候,我似乎进入了错误的代理服务器或以错误的方式。环顾互联网,我注意到设置它的方式是(在Windows中):
设置https_proxy = http://proxy_url
注意等号show(不是https)
的右侧再次感谢Sudheesh!