Что не так с моим кодом Python и как я могу это исправить? - PullRequest
0 голосов
/ 06 марта 2019

Вот мой код

import requests
ping = requests.get('http://example.com')
ping.status_code

if ping.status_code==200:
    print ("Online")
else:
    print ("Offline")

Он пингует http://example.com.Когда веб-сайт находится в сети, он успешно печатает Online.когда веб-сайт находится в автономном режиме, я хочу, чтобы он печатал Offline, но вместо этого он показывает мне огромное сообщение об ошибке, оканчивающееся этой строкой

Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd3f17372e8>: Failed to establish a new connection: [Errno -2] Name or service not known',))

Как я могу исправить это для успешной печати Offline, еслисайт не в сети?

Ответы [ 2 ]

1 голос
/ 06 марта 2019

Вы можете сделать это, изменив код следующим образом:

Добавление механизма try и except.

import requests
try:
    ping = requests.get('http://example.com')
    ping.status_code

    if ping.status_code==200:
        print ("Online")
    else:
        print ("Offline")
except requests.exceptions.ConnectionError as e:
    print("Offline")
1 голос
/ 06 марта 2019

По запросу вы получаете сообщение об ошибке.

ping = requests.get('http://example.com')

Таким образом, вы не получите код состояния, если сервер не ответил вам. Если вы хотите проверить, не работает ли хост, стоит использовать обработку исключений, чтобы при сбое запроса ваш скрипт не завершал работу с ошибкой. Следующий код должен работать.

import requests
try:
    ping = requests.get('http://example.com')
    print ("Online")
except:
    print ("Offline")
...