C#简单的Web服务器与URL参数

3
3个回答

4
你应该看一下OWIN/Katana。根据你的问题 - 并且OWIN能够在任何进程中托管 - 这可能非常适合,也是当前的最佳选择:http://www.asp.net/aspnet/overview/owin-and-katana/getting-started-with-owin-and-katana
你会发现关于这个主题的大量示例。对于你与参数相关的问题,可以参考这篇文章
基于第一个链接,你可以做如下操作:
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,其中包含IT技术相关内容。请注意,保留了HTML标签。

嗯,这个OWIN / Katana项目看起来很有前途。我可以确认@Shahrooz在另一个答案中提供的内容是有效的,我相信这个也是一样的。但是我还没有接近获取那些参数。你能否请更加“具体”一些? - Zoszko
请查看我的更新答案。进一步的研究由您自行决定 ;) - Jan Köhler

4
请阅读这篇文章:使用OWIN和Katana构建简单的文件服务器。该文章涉及到IT技术,介绍了如何使用OWIN和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();
        }
    }

请问您能否更具体地说明如何将其实现到我的应用程序中? - Zoszko
@Zoszko,你可以查看这篇文章:http://odetocode.com/blogs/scott/archive/2014/02/10/building-a-simple-file-server-with-owin-and-katana.aspx - user1968030

0

根据您的项目示例,尝试将以下内容放入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;
            }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接