【问题标题】:C# Simple web server with url parameters带有 url 参数的 C# 简单 Web 服务器
【发布时间】:2015-03-31 15:38:00
【问题描述】:

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

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

【问题讨论】:

    标签: c# asp.net web-services url-parameters


    【解决方案1】:

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

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

    您会发现有关此主题的大量示例。关于参数的问题可以参考this article。

    根据第一个链接,您可以执行以下操作:

    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

    【讨论】:

    • 嗯,这个 OWIN / Katana 项目看起来很有希望。我可以确认@Shahrooz 在另一个答案中链接的内容有效,我相信这个也有效。但我并没有更接近获得这些参数。你能说得更“具体”吗?
    • 查看我的更新答案。进一步的研究取决于你;)
    【解决方案2】:

    请阅读这篇文章: 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();
            }
        }
    

    【讨论】:

    【解决方案3】:

    根据您的项目示例,尝试输入方法 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;
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-10
      • 1970-01-01
      • 1970-01-01
      • 2013-10-17
      • 1970-01-01
      • 2014-03-02
      • 2011-06-14
      • 1970-01-01
      相关资源
      最近更新 更多