在Startup的Configure中,可以使用UseEndPoints定义URL与处理程序之间的对应。MapPost可以映射POST方法的Url地址和处理函数,我们可以在这里编写简单的中间件代码,下面是简单的示例:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
//增加静态内容
app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/", async context =>
{
context.Response.Redirect("index.html");
});
endpoints.MapPost("/SaveGraph", async context =>
{
var requ = context.Request;
var xml = requ.Form["xml"];
var filename ="d:\\workflow\\temp\\"+ DateTime.Now.Ticks + ".xml";
System.IO.File.WriteAllText(filename, xml);
await context.Response.WriteAsync(filename);
});
endpoints.MapGet("/GetXml", async context =>
{
var requ = context.Request;
var xml = requ.Query["xml"];
var filename = "d:\\workflow\\temp\\" + xml;
var content=System.IO.File.ReadAllText(filename);
await context.Response.WriteAsync(content);
});
});
}
这里,我们定义了Url"/SaveGraph"响应POST方法,用于接收页面发送的数据,使用context.Reqeust.Form[key]可以获取POST发送的数据。定义了“/GetXML”,用于根据xml的文件名,获取文件的内容,可以使用context.Request.Query[key]获取Url中的参数。