Net6 请求管道处理

发布时间 2023-05-23 21:42:52作者: 孤海飞雁

1 new WebHostBuilder ,并传入 IHostBuilder 和 ApplicationBuilder 并初始化 , 执行委托 创建HttpListenerServer 服务,没有则返回默认 监听地址,
注册中间件,获取监听地址,生成管道 对象 requestDelegate()生成时 执行了 注册的 中间件。

创建 并返回WebHostedService (传入 监听地址 和 生成requestDelegate ),

并启动 ,遍历监听地址添加到 HttpListener监听中 启动监听

然后请求监听地址,获取监听 请求的对象,HttpListenerFeature 将 监听 对象 转为

httpcontent 。 先将 HttpListener Content 传入 HttpListenerFeature ,将 HttpListenerFeature 添加到 键值对结合中(里面的 request和 response 对应 IHttpRequestFeature,IHttpResponseFeature)

在 将 HttpListenerFeature 传入 HttpContext 中,将里面的 request和 response 取出来(通过 IHttpRequestFeature,IHttpResponseFeatur)
生成 httpcontext,然后将 httpcontext, 闯入 管道继续执行返回,最后返回s