ASP.NET MapGet
最后修改于 2023 年 10 月 18 日
在本文中,我们将展示如何在 ASP.NET 中将 GET 请求映射到处理程序。
ASP.NET 是一个跨平台、高性能、开源的框架,用于构建现代、支持云的 Web 应用程序。它由 Microsoft 开发。
HTTP GET 方法请求指定资源的表示。使用 GET 的请求应该只检索数据。
GET 请求
- 仅应用于请求资源
- 参数显示在 URL 中
- 可以被缓存
- 保留在浏览器历史记录中
- 可以被添加书签
- 在处理敏感数据时绝不应使用
- 具有长度限制
MapGet 方法向终结点生成器添加一个 RouteEndpoint,该终结点匹配指定模式的 HTTP GET 请求。
ASP.NET MapGet 示例
以下是一个简单的 MapGet 示例。
Program.cs
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "home page\n");
app.MapGet("/about", () => "about page\n");
app.Run("https://:3000");
我们使用 MapGet 映射了两个终结点。
app.MapGet("/", () => "home page\n");
使用 MapGet,我们将 lambda 表达式映射到 / 路径。
app.Run("https://:3000");
应用程序监听端口 3000。
$ curl localhost:3000 home page $ curl localhost:3000/about about page
我们生成了两个 GET 请求。
$ curl localhost:3000 -X POST -i HTTP/1.1 405 Method Not Allowed Content-Length: 0 Date: Wed, 28 Sep 2022 11:33:34 GMT Server: Kestrel Allow: GET $ curl localhost:3000/about -X POST -i HTTP/1.1 405 Method Not Allowed Content-Length: 0 Date: Wed, 28 Sep 2022 11:33:39 GMT Server: Kestrel Allow: GET
但是,POST 请求是不允许的。
ASP.NET MapGet 示例 II
在下一个示例中,我们将两个终结点映射到本地函数。
Program.cs
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", homePage);
app.MapGet("/about", aboutPage);
app.Run("https://:3000");
string homePage() => "home page\n";
string aboutPage() => "about page\n";
我们有两个终结点。
app.MapGet("/", homePage);
app.MapGet("/about", aboutPage);
我们将这两个终结点映射到两个本地函数。
Program.cs
using var client = new HttpClient();
var content = await client.GetStringAsync("https://:3000/about");
Console.WriteLine(content);
我们创建了一个 C# 控制台应用程序,它向其中一个终结点发送 GET 请求。我们使用了 HttpClient 类。
$ dotnet run about page
我们运行控制台应用程序,并从 ASP.NET 应用程序接收到响应。
在本文中,我们展示了如何在 ASP.NET 中使用 MapGet 映射 GET 请求。