Python 3 - urllib.request - HTTPError - PullRequest
0 голосов
/ 25 июня 2018
    import urllib.request
request = urllib.request.Request('http://1.0.0.8/')
try:
    response = urllib.request.urlopen(request)
    print("Server Online")
    #do stuff here
except urllib.error.HTTPError as e: # 404, 500, etc..
    print("Server Offline")
    #do stuff here

Я пытаюсь написать простую программу, которая проверит, работает ли список веб-сервера локальной сети.В настоящее время используется только один IP.

Когда я запускаю его с IP-адресом веб-сервера, я снова получаю Server Online.

Когда я запускаю его с IP-адресом, у которого нет веб-сервера, я получаю

"urllib.error.URLError: <urlopen error [WinError 10061] No connection could be made because the target machine actively refused it>" 

, но предпочитаю простой вывод "Server Offline".Не уверен, как получить ответ на выход Server Offline.

1 Ответ

0 голосов
/ 25 июня 2018

В приведенном выше коде вы просто ищете исключения HTTPError. Просто добавьте в конец еще одно исключающее предложение, которое будет ссылаться на искомое исключение, в данном случае URLError:

import urllib.request
request = urllib.request.Request('http://1.0.0.8/')
try:
    response = urllib.request.urlopen(request)
    print("Server Online")
    #do stuff here
except urllib.error.HTTPError as e:
     print("Server Offline")
     #do stuff here
except urllib.error.URLError as e:
     print("Server Offline")
     #do stuff here
...