我有许多API不是由我托管的,所以我无法控制API本身。我想要实现的是检查API是否在线。我已经尝试过几种方式:
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
if (response.StatusCode == HttpStatusCode.NotFound)
return false;
return true;
}
但不知何故,我的最终结果还不够准确。它显示离线但当我手动尝试调用API时,似乎没问题。有人有解决方案吗?
使用API运行状况检查服务怎么样?一些可以帮助您的链接:
https://www.getpostman.com/docs/postman/monitors/intro_monitors
https://blog.runscope.com/posts/build-a-health-check-api-for-services-underneath-your-api
https://nordicapis.com/monitor-the-status-of-apis-with-these-4-tools/
https://apigee.com/about/blog/technology/api-health-free-tool-monitoring-apis-public-beta-now
只要服务器可以响应HEAD
请求,第一个选项应该是好的。如果没有,那么应该有一些安全的GET
端点可以替代使用。
对健康检查进行计时也是有意义的,这样如果API服务器不活动,它将不会冻结您的应用程序。