具有 url 个参数的 C# 简单 Web 服务器

C# Simple web server with url parameters

我正在尝试创建一个小程序,它将像 Web 服务器一样运行并接受 url 参数。我找到了这个示例项目:https://codehosting.net/blog/BlogEngine/post/Simple-C-Web-Server.aspx

有什么方法可以让它接收我的 url 参数吗?是否有任何其他类似的示例项目具有此功能?

你应该看看 OWIN/Katana。 根据您的问题 - 并且 OWIN 能够在任何进程中托管 - 这可能非常适合并且是当前的方式:

http://www.asp.net/aspnet/overview/owin-and-katana/getting-started-with-owin-and-katana

您会找到大量关于此主题的示例。关于参数的问题可以参考this article.

在第一个 link 的基础上,您可以执行以下操作:

public class Startup1
{
    public void Configuration(IAppBuilder app)
    {
        app.Run(context =>
        {
            var value = context.Request.Query.Get("someKey");

            if (value == "foo")
            {
                // do something
            }

            context.Response.ContentType = "text/plain";
            return context.Response.WriteAsync("Hello, world.");
        });
    }
}

请求可能如下所示:http://someServer:80/?someKey=foo

请阅读这篇文章: Building A Simple File Server With OWIN and Katana

class Program
    {
        static void Main(string[] args)
        {
            var url = "http://localhost:8080";
            WebApp.Start(url, builder => builder.UseFileServer(enableDirectoryBrowsing:true));            
            Console.WriteLine("Listening at " + url);
            Console.ReadLine();
        }
    }

根据您的项目示例,尝试按如下方式放入方法 SendRequest:

string name = request.QueryString.Get("name");
            switch (name){
                case "a":
                    return string.Format("<HTML><BODY>My web page a.<br>{0}</BODY></HTML>", DateTime.Now);
                    break;
                case "b":
                    return string.Format("<HTML><BODY>My web page b.<br>{0}</BODY></HTML>", DateTime.Now);
                    break;
                default:
                    return string.Format("<HTML><BODY>My web page .<br>{0}</BODY></HTML>", DateTime.Now);
                    break;
            }