2014-04-11 58 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