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