ERS,Python的 - 嘗試編寫一個腳本,測試HTTP接口
我仍然得到與Python的基本交手..
我現在的要求是建立一個Python腳本,這將考驗多個設備的基於Web的界面的可用性(例如,您可能需要通過Web瀏覽器輸入「http://192.168.0.2:9876」),這不必過於複雜。
我想從簡單的bash curl命令轉換,最初我有這樣的事情在一個bash腳本如下:
date=`date +"%Y-%m-%d_%H-%M-%S-%N"`
curl -s --connect-timeout 1 ${ip} -o /dev/null
test=$?
if [[ $test == 0 ]] ;then
echo "${date}:webping - Web Page Up for ${ip}" >> $log
else
echo "${date}:webping - Web Page Down for ${ip}" >> $log
fi
其供職於原來的概念,但我希望有在Python中有類似的東西。輸出可能會有所不同,在合理的範圍內...任何人都可以從哪裏開始。
PS我已經看過這裏的一些其他問題,但它們似乎給出了誤報,其中接口已被「取下」(即,我停止了該服務)並且它仍然給出200的狀態代碼。
編輯:下面是我試過的代碼。
for url in ["http://www.google.co.uk", "http://192.168.0.2:8000"]:
try:
connection = urllib2.urlopen(url)
print connection.getcode()
connection.close()
except urllib2.HTTPError, e:
print "none"
更正:我得到下面的結果...
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
File "C:\Python27\lib\urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "C:\Python27\lib\urllib2.py", line 391, in open
response = self._open(req, data)
File "C:\Python27\lib\urllib2.py", line 409, in _open
'_open', req)
File "C:\Python27\lib\urllib2.py", line 369, in _call_chain
result = func(*args)
File "C:\Python27\lib\urllib2.py", line 1173, in http_open
return self.do_open(httplib.HTTPConnection, req)
File "C:\Python27\lib\urllib2.py", line 1148, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [Errno 10061] No connection could be made because the target machine actively refused it>
我寧願不要看到蟒蛇錯誤輸出。
在此先感謝
發佈您嘗試過的Python代碼,運行它時得到的結果以及期望的結果。 「將此腳本轉換爲X語言」,對於SO來說不是一個真正的問題。 – jordanm
@jordanm,對不起,請參閱上面的代碼編輯。我希望當Web界面不可用時(即由於服務已停止或出現故障/錯誤而停機),restult會有所不同。 – MHibbin
如果沒有任何內容接受端口上的連接,則應拋出異常。在我的機器上進行快速測試會拋出:'urllib2.URLError:'。你沒有捕獲urllib2.URLError,它不會拋出異常嗎? –
jordanm