2014-04-11 57 views
2

在Windows 7上。編寫一個簡單的監視器來測試本地應用服務器是否仍然健康。服務器在http://localhost:8080/myApp/ping處公開RESTful端點。如果服務器是健康的,將具有以下JSON響應:使用wget解析HTTP GET響應

{ 
    "pong" : 1 
} 

我怎麼能使用wget打這個端點,然後解析出「傍」的響應,確定它是1(或不存在的,這表明失敗)?

回答

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! 
0

如果我們假設"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到空設備的詳細的輸出。

0

試試這個

wget http://localhost:8080/myApp/ping -O - | findstr /C:"\"pong\" : 1" && echo Success || echo failure