Я видел несколько решений при использовании библиотеки запросов или urllib et c. но как насчет применения настройки прокси, когда вы делаете вызов через библиотеку? В моем примере я хочу отправить простой запрос POST в Slack из сети, используя python протоколирование. Команда curl работает нормально, так как использует прокси, определенный в env vars, но когда я использую python через slack-logger (https://pypi.org/project/slack-logger/), я получаю ошибку тайм-аута. Я пытался найти способ где-то разобрать мой прокси-адрес, но пока не смог найти решение.
import logging
from slack_logger import SlackHandler, SlackFormatter
import os
proxy = 'myproxy:myport' # used my proxy
os.environ['http_proxy'] = proxy
os.environ['HTTP_PROXY'] = proxy
os.environ['https_proxy'] = proxy
os.environ['HTTPS_PROXY'] = proxy
sh = SlackHandler('https://hooks.slack.com/...') # used my slack webhook
sh.setFormatter(SlackFormatter())
logging.basicConfig(handlers=[sh])
logging.warning('warn message')
Это ошибка:
--- Logging error ---
Traceback (most recent call last):
File "/usr/lib/python3.5/logging/handlers.py", line 1162, in emit
h.endheaders()
File "/usr/lib/python3.5/http/client.py", line 1118, in endheaders
self._send_output(message_body)
File "/usr/lib/python3.5/http/client.py", line 944, in _send_output
self.send(msg)
File "/usr/lib/python3.5/http/client.py", line 887, in send
self.connect()
File "/usr/lib/python3.5/http/client.py", line 1268, in connect
super().connect()
File "/usr/lib/python3.5/http/client.py", line 859, in connect
(self.host,self.port), self.timeout, self.source_address)
File "/usr/lib/python3.5/socket.py", line 711, in create_connection
raise err
File "/usr/lib/python3.5/socket.py", line 702, in create_connection
sock.connect(sa)
TimeoutError: [Errno 110] Connection timed out
Call stack:
File "test_slack.py", line 15, in <module>
logging.warning('warn message')
Message: 'warn message'
Arguments: ()