我编写了一些代码来监控 SOAP Web 服务。基本上它使用 QNetworkAccessManager 向 web 服务地址发送 HTTP GET 请求,如果收到响应,那么我知道服务已启动。我认为这是可行的,但每隔一段时间(每隔几天一次)我会收到一条通知,说服务器已关闭,然后下次检查时它会再次启动。所以服务器实际上并没有关闭,请求发生了一些事情。我想知道是否有更好的方法来监控 web 服务,下面是一些伪代码,向您展示我所做的:
main{
Qtimer timer;
connect(timer, SIGNAL(timeout()), this, SLOT(send()));
timer.start(300000);
}
send(){
QNetworkAccessManager *qnam;
connect(qnam, SIGNAL(finished(QNetworkReply*)), this, SLOT(requestFinished(QNetworkReply*));
qnam.get("https://testWebservice.com/TEST/webservice");
}
requestFinished(QNetworkReply *reply){
QByteArray data = reply.getData();
if(reply.error == some sort of error indicating server is down, or if reply == empty){
***SERVER DOWN***
}
else{
***SERVER UP***
}
}
编辑 更改了if条件以包括错误检查