ASP.NET Core中间件计算Http请求时间示例详解
 更新时间:2019年06月23日 11:34:17   作者:Rohmeng  

这篇文章主要给大家介绍了关于ASP.NET Core中间件计算Http请求时间的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ASP.NET Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

ASP.NET Core通过RequestDelegate这个委托类型来定义中间件

public delegate Task RequestDelegate(HttpContext context);

可将一个单独的请求委托并行指定为匿名方法(称为并行中间件),或在类中对其进行定义。可通过Use,或在Middleware类中配置要传递给委托执行的方法(参数类型HttpContext,返回值类型Task)。

public static IApplicationBuilder Use(this IApplicationBuilder app, Func<HttpContext, Func<Task>, Task> middleware);

public static IApplicationBuilder UseMiddleware<TMiddleware>(this IApplicationBuilder app, params object[] args);

通过定义一个中间件类 来计算http请求的时间,例:

public class ResponseTimeMiddleware
{
// Name of the Response Header, Custom Headers starts with “X-”
private const string RESPONSE_HEADER_RESPONSE_TIME = “X-Response-Time-ms”;
// Handle to the next Middleware in the pipeline
private readonly RequestDelegate _next;
public ResponseTimeMiddleware(RequestDelegate next)
{
_next = next;
}
public Task InvokeAsync(HttpContext context)
{
// Start the Timer using Stopwatch
var watch = new Stopwatch();
watch.Start();
context.Response.OnStarting(() => {
// Stop the timer information and calculate the time
watch.Stop();
var responseTimeForCompleteRequest = watch.ElapsedMilliseconds;
// Add the Response time information in the Response headers.
context.Response.Headers[RESPONSE_HEADER_RESPONSE_TIME] = responseTimeForCompleteRequest.ToString();
return Task.CompletedTask;
});
// Call the next delegate/middleware in the pipeline
return this._next(context);
}
}

总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对华域联盟的支持。

您可能感兴趣的文章:ASP.NET Core 应用程序中的静态文件中间件的实现.Net Core中间件之静态文件(StaticFiles)示例详解.net core异常中间件的使用ASP.NET Core中间件初始化的实现详解ASP.NET Core 中基于工厂的中间件激活的实现方法在 asp.net core 的中间件中返回具体的页面的实现方法ASP.NET Core自定义中间件如何读取Request.Body与Response.Body的内容详解.net core webapi通过中间件获取请求和响应内容的方法利用.net core实现反向代理中间件的方法如何给asp.net core写个中间件记录接口耗时ASP.NET Core应用错误处理之ExceptionHandlerMiddleware中间件呈现“定制化错误页面”.net core静态中间件的使用

core
中间件
http请求

相关文章
详解在ASP.NET Core下使用SignalR技术本篇文章主要介绍了在ASP.NET Core下使用SignalR技术 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
2017-02-02
Asp .net 调用带参数的存储过程本文主要介绍了Asp .net 调用带参数的存储过程的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧 2017-03-03
asp.net core新特性之TagHelper标签助手这篇文章主要为大家详细介绍了asp.net core新特性之TagHelper标签助手的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 2017-07-07
点击提交按钮后DropDownList的值变为默认值实现分析在点击提交按钮后,页面上所有的绑定到数据库的控件值都恢复到默认值,下面与大家分享下DropDownList的值变为默认值 2013-05-05
.Net Core项目如何添加日志功能详解这篇文章主要给大家介绍了关于.Net Core项目如何添加日志功能的相关资料,日志功能是我们开发中经常需要用到的一个功能,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧 2018-07-07
asp.net core应用docke部署到centos7的全过程这篇文章主要给大家介绍了关于asp.net core应用docke部署到centos7的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 2020-08-08
ASP.NET MVC使用EPPlus,导出数据到Excel中这篇文章介绍的是怎样导出数据到Excel文件中,大多数的后端程序都有报表功能:把显示在Grid中的数据导出到Excel文件中,这篇文章中使用的是EPPlus组件。需要的朋友可以参考借鉴 2016-12-12
ASP.NET DataTable去掉重复行的2种方法这篇文章主要介绍了ASP.NET DataTable去掉重复行的2种方法,本文直接给出去重代码,需要的朋友可以参考下 2015-02-02
.NET Core中Object Pool的多种用法详解本文通过实例代码给大家介绍了.NET Core中Object Pool的简单使用 ,大概给大家提供了四种方法,每种方法都很经典,需要的朋友可以参考下 2018-09-09
三种asp.net页面跳转的方法跳转页面是大部编辑语言中都会有的,下面我们来分别介绍一下关于.net中response.redirect sever.execute server.transfer三种页面跳转的方法,,需要的朋友可以参考下 2015-10-10

最新评论

声明:本站(华域联盟www.cnhackhy.com)所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。