Python 3-urllib.request-HTTPError

时间:2018-06-25 13:53:31

标签: python python-3.x urllib

    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

我正在尝试编写一个简单的程序,该程序将检查LAN网络服务器列表是否可用。目前暂时仅使用一个IP。

当我使用Web服务器的IP运行它时,我会返回“服务器在线”。

当我使用没有Web服务器的IP来运行它时,

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

,而是一个简单的“服务器脱机”输出。不确定如何获取对脱机输出服务器的答复。

2 个答案:

答案 0 :(得分:1)

在上面的代码中,您只是在寻找HTTPError异常。 只需在末尾添加另一个except子句,该子句将引用您要查找的异常,在本例中为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

答案 1 :(得分:0)

好吧,我们也可以合并这些错误。

except (urllib.error.URLError, urllib.error.HTTPError):
     print("Poor server is offline.")