ASPNetCore之中间件和请求处理管道(3)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了 ASPNetCore之中间件和请求处理管道(3),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1930字,纯文字阅读大概需要3分钟。
内容图文
![ASPNetCore之中间件和请求处理管道(3)](/upload/InfoBanner/zyjiaocheng/591/5eff5e1095f34f8ea3dc8941d46abf7e.jpg)
中间件在Configure方法中是注重先后顺序的
//Configure类是一定要的,哪怕里面是个空的、用来进行管道,http请求的处理 public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { //Configure是用来处理中间件的方法 处理Http请求和相应 //1:在请求之前和之后,执行一些相应的工作 //2:异常中间件,日志,身份授权,记录请求,静态资源中间件 //3:这些中间件都是特性功能的组件(类),单一职责 if (env.IsDevelopment())//判断是否是开发者模式 { //异常中间件,当我们是开发者模式的情况下,这个组件就会被注册到请求处理管道中 app.UseDeveloperExceptionPage();//异常中间件 } //我们在每个中间件当中,处理Http请求,之前或者之后 //你也可以选择中间传递,传递到下一个中间件,你也可以不传递 //这个输出了,下面的Hello World!就不会再输出了 // app.Run(async context => { await context.Response.WriteAsync("Hello!!!!!"); }); //这里加上Next 下面的Hello World!会输出的 app.Use(async (context, next) => { await context.Response.WriteAsync("Hello!!!!!"); await next(); }); app.UseRouting();//路由中间件 //终结点中间件 app.UseEndpoints(endpoints => { endpoints.MapGet("/", async context => { await context.Response.WriteAsync("Hello World!"); }); }); }
请求处理管道
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.Use(async (context, next) => { await context.Response.WriteAsync("middleware1_In\n"); await next(); await context.Response.WriteAsync("middleware1_Out\n"); }); // next()的作用:是否请求下个中间件 app.Use(async (context, next) => { await context.Response.WriteAsync("middleware2_In\n"); //await next();//如果这里将Next(),注释掉下面Run()的中间件是不会请求的==》称之为短路请求 //middleware1_In ===》middleware2_In ===》middleware2_Out ===》middleware1_Out //就不会再请求下面的middleware3_In了 await context.Response.WriteAsync("middleware2_Out\n"); }); //从Run()(短路中间件,开始返回)这里请求就开始返回了 app.Run(async context => { await context.Response.WriteAsync("middleware3_In\n"); }); //middleware1_In //middleware2_In //middleware3_In //middleware2_Out //middleware1_Out }
内容总结
以上是互联网集市为您收集整理的 ASPNetCore之中间件和请求处理管道(3)全部内容,希望文章能够帮你解决 ASPNetCore之中间件和请求处理管道(3)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。