我要做的就是将[Connection]
HTTP标头从“ Keep-alive”修改为小写的“ keep-alive”。
我写了课,
public class PreRequestModifications
{
private readonly RequestDelegate _next;
public PreRequestModifications(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext context)
{
// Does not get called when making an HTTPWebRequest.
await _next.Invoke(context);
}
}
并在启动时注册
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMiddleware<PreRequestModifications>();
}
但是当我执行Invoke
await httpWebRequest.GetResponseAsync();
方法
答案 0 :(得分:1)
因此,在发出请求并发送回响应时,中间件会受到攻击。实际上,这意味着您可以像这样两次遍历Invoke方法:
public async Task Invoke(HttpContext context)
{
ModifyRequest(context);
await _next(context);
ModifyResponse(context);
}
因此,您可以使用ModifyResponse
方法修改响应。
Microsoft的文档将使其更加清晰:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware/?view=aspnetcore-2.1
希望这会有所帮助。
答案 1 :(得分:1)
您是否已在DI系统中注册了中间件?您需要在AfterSaveBehavior
类的Startup
方法中这样做:
ConfigureServices