c# - 创建我自己的 "URL Manager"

标签 c# asp.net

我正在编写一个 http API,我需要比我在 asp.net 中习惯的更多的灵 active 。这是我遇到的非常简单的问题,只需要一些帮助才能走上正轨。

我的问题是,我想根据请求创建一个响应对象。 F.x 用户在请求时可以获得一个 xml 文档:“myapi/images/5/xml”。或者如果它以 json 结尾,则将其作为 json 获取。创建正确的响应对象没有问题。我只需要一种方法来收集某个对象中的所有请求,然后使用正则表达式解析 URL 并创建正确的响应。

但是我如何收集 Web 应用程序上的所有请求?

最佳答案

您可能不想使用正则表达式解析整个 URL。连接到 ASP.NET 的路由引擎可能会更容易:-

routes.MapHttpRoute(
  name: "MyApi",
  routeTemplate: "myapi/{controller}/{id}/{responseType}",
  defaults: new
  {
    id = RouteParameter.Optional, responseType = RouteParameter.Optional
  });

然后您的操作方法可以接受来自 url 的参数 responseType

我同意上面 steven 的评论,不过,您可能应该从请求 header 而不是从 url 获取响应类型。

关于c# - 创建我自己的 "URL Manager",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13142502/

相关文章:

c# - 如何通过外键引用访问表数据?

c# - 通过 Application.ThreadException 和 AppDomain.CurrentDomain.UnhandledException 的异常

c# - 存储:C# 等同于 PowerShell 命令

c# - asp.net无法获取输入文本的文本

c# - 将数据源动态绑定(bind)到 gridview

c# - 空 gridview 虽然 sqldatasource 有值

asp.net - 框架的 Modalpopup 问题

c# - 连接列表项属性

c# - 在 ASP.NET C# 中异步发送电子邮件

c# - 如何使用下拉列表对 gridview 进行排序