在Windows 7上。編寫一個簡單的監視器來測試本地應用服務器是否仍然健康。服務器在http://localhost:8080/myApp/ping
處公開RESTful端點。如果服務器是健康的,將具有以下JSON響應:使用wget解析HTTP GET響應
{
"pong" : 1
}
我怎麼能使用wget
打這個端點,然後解析出「傍」的響應,確定它是1(或不存在的,這表明失敗)?
在Windows 7上。編寫一個簡單的監視器來測試本地應用服務器是否仍然健康。服務器在http://localhost:8080/myApp/ping
處公開RESTful端點。如果服務器是健康的,將具有以下JSON響應:使用wget解析HTTP GET響應
{
"pong" : 1
}
我怎麼能使用wget
打這個端點,然後解析出「傍」的響應,確定它是1(或不存在的,這表明失敗)?
與FOR
有點工作要做到這一點:
@echo off
set SUCCESS=0
rem get server response, find "pong", keep what comes after the :
for /f "tokens=2 delims=:" %%i in ('wget...^|find """pong"""') do set SUCCESS=%%i
rem remove spaces
set SUCCESS=%SUCCESS: =%
if not "%SUCCESS%"=="1" echo Server down!
如果我們假設"pong" : 1
將準確顯示爲在一個問題中指定自己的路線,那麼這將工作;否則,您可以在下面的代碼中修改指定爲參數findstr /C:
的要匹配的字符串。
wget http://localhost:8080/myApp/ping -O - | findstr /C:"\"pong\" : 1"
if errorlevel 1 (
echo failure
) else (
echo success
)
如果你想抑制從wget和findstr命令出現的額外輸出,那麼你可以試試這個。
wget http://localhost:8080/myApp/ping -O - 2> nul | findstr /C:"\"pong\" : 1" > nul
if errorlevel 1 (
echo failure
) else (
echo success
)
此重定向寫入到由wget的標準錯誤流和輸出從FINDSTR到空設備的詳細的輸出。
試試這個
wget http://localhost:8080/myApp/ping -O - | findstr /C:"\"pong\" : 1" && echo Success || echo failure