测试用中间件
// 需要安装Dynamic.Json
// install-package Dynamic.Json
public class CheckMiddleware
{
private RequestDelegate Next { get; init; }
public CheckMiddleware(RequestDelegate next)
{
Next = next;
}
public async Task Invoke(HttpContext context)
{
string password = context.Request.Query["password"];
if (password == "123")
{
if (context.Request.HasJsonContentType())
{
using (Stream stream = context.Request.BodyReader.AsStream())
{
dynamic dynamic = await DJson.ParseAsync(stream);
context.Items["BodyJson"] = dynamic;
}
await Next.Invoke(context);
}
}
else
context.Response.StatusCode = 401;
}
}
只对"/test"使用该中间件
app.Map("/test", pipebuilder =>
{
pipebuilder.UseMiddleware<CheckMiddleware>();
pipebuilder.Run(async context =>
{
object? obj = context.Items["BodyJson"];
if (obj != null)
await context.Response.WriteAsync($"body: {obj}");
await context.Response.WriteAsync("Run<br/>");
});
});
测试
POST https://localhost:7132/test?password=123 HTTP/1.1
content-type: application/json
{
"name": "sample",
"time": "Wed, 21 Oct 2015 18:27:50 GMT"
}
###
结果
HTTP/1.1 200 OK
Connection: close
Date: Tue, 15 Feb 2022 06:44:18 GMT
Server: Kestrel
Transfer-Encoding: chunked
body: {
"name": "sample",
"time": "Wed, 21 Oct 2015 18:27:50 GMT"
}Run<br/>
---------------------------
知道的更多,不知道的也更多
---------------------------
标签:
asp.net core
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
2019-02-15 TLS1.2 only