【发布时间】:2012-04-04 18:59:42
【问题描述】:
在下面的代码中,我正在等待对 8080 端口的任何调用。
static void Main()
{
HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://*:8080/");
listener.Start();
while(isRunning)
{
HttpListenerContext ctx = listener.GetContext();
new Thread(new Worker(ctx).ProcessRequest).Start();
}
}
是否可以将特定的 URL 模式映射到不同的行为?我想实现一个 REST 风格的服务器,即调用 localhost:8080/person/1 将启动 getPersonHandler(int)
[Mapping("*:8080/person/$id")]
public void getPersonHandler(int id){...}
Mapping 语法只是我自己对我所知道的 JAX-RS 库的一厢情愿的类比。我想在 C# 中做同样的事情(桌面 C#,而不是 asp)
【问题讨论】:
-
你真的需要重新发明轮子吗? ASP.NET MVC 4 中的 Web API 可以做到这一点。
-
我需要一个独立的应用程序。
-
仅供参考 ASP.NET Web API 可以自托管(无 IIS)
-
如果 ASP.NET Web API 可以在可执行文件中自托管,我想看看! (不是说不能,只是不知道可以)。
标签: c# http url-mapping