Python («Соединение прервано», ошибка (104, «Сброс соединения по пиру») при попытке сделать GET-запрос к URL-адресам Telegram - PullRequest
0 голосов
/ 31 октября 2019

У меня есть бот Telegram, работающий некоторое время на коробке DO. И как ни странно, без каких-либо изменений в коде или сервере бот перестал работать с ('Connection aborted.', error(104, 'Connection reset by peer')) сгенерированными исключениями.

После расследования я обнаружил:

  1. GET-запросы к другим службам работают нормально.
  2. Исключение возникает при попытке выполнить следующий блок кода.
...
    type_action = "https://api.telegram.org/bot{}/sendChatAction?chat_id={}&action=typing".format(telegram_bot_key, telegram_group_id)
    send_message = "https://api.telegram.org/bot{}/sendMessage?chat_id={}&text={}&parse_mode=html&reply_to_message_id={}".format(telegram_bot_key, telegram_group_id, t_message, message_id)
    try:
        requests.get(type_action)
        time.sleep(5)
        requests.get(send_message)
    except Exception as e:
        print(e)
...

Пока что я устраню неполадкиэти:

  1. Проверено, что бот не ограничен в скорости, делая запрос локально.
  2. Сервер исправен без ограничений ресурсов или любых подобных инцидентов.
  3. Попытка pip install "requests[security]" в соответствии с предложением this answer.
  4. Установка более короткого сообщения, отправляемого - test.
  5. Проверено, что IP-адреса не заблокированычерез брандмауэр.

Странно, что все GET-запросы к другим URL-адресам API работают. И тот же URL-адрес Telegram работает при локальном запросе. Но когда запрос происходит из вышеуказанного кодового блока, он выдает ошибку.

Я в тупике.

...