Skip to main content
 首页 » 编程设计

c#之Web API 响应时间

2024年01月18日29三少

我正在构建一个服务器监控系统,我想向 Web API 发送请求,并在 JSON 对象中获取服务器的健康状况、数据库连接是否正常、响应时间等。

如何实现响应时间,即 Web API 需要多长时间来响应请求?

请您参考如下方法:

如果您想实现 Web Api 监控,您可以创建一个自定义的 DelegatingHandler 来跟踪操作持续时间和状态。

这是衡量操作持续时间的一个非常基本的示例。将持续时间添加到响应中(非常无用);最好将此类数据存储到专用存储库中。

public class MonitoringDelegate : DelegatingHandler 
{ 
    protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, 
        CancellationToken cancellationToken) 
    { 
        var watcher = Stopwatch.StartNew(); 
        var response = await base.SendAsync(request, cancellationToken); 
        watcher.Stop(); 
 
        //store duration somewheren here in the response header 
        response.Headers.Add("X-Duration", watcher.ElapsedMilliseconds.ToString()); 
 
        return response; 
    } 
}