我正在将小型Web服务器嵌入程序中。
这是相对简单的-只需要提供原始的html文件和javascript。

我有一些异步网络代码,可以用来获取基本的管道信息。
但是,有没有现成的可以理解http的库?

我只需要能够解析http请求以提取路径,查询字符串,发布变量并能够做出相应的响应。

无需SSL或cookie或身份验证。

我尝试了几个Web服务器库,但并不满意,主要是因为它们使用的工作线程使与程序UI的交互变得烦人。

理想情况下,我只想要一个带有一些http请求字符串\流并给我一个结构或对象的库。

最佳答案

我认为HttpListener可能会做您想要的。

编辑:(添加的代码示例以防万一)

以下是一些代码,展示了如何使用它(使用异步方法)。

HttpListener _server = new HttpListener();

// add server prefix (this is just one sample)
_server.Prefixes.Add("http://*:8080");

// start listening
_server.Start();

// kick off the listening thread
_Server.BeginGetContext(new AsyncCallback(ContextCallback), null);

然后输入ContextCallback(IAsyncResult result)
// get the next request
HttpListenerContext context = _server.EndGetContext(result);

// write this method to inspect the context object
// and do whatever logic you need
HandleListenerContext(context);

// is the server is still running, wait for the next request
if (_Server.IsListening)
{
    _server.BeginGetContext(new AsyncCallback(ServerThread), null);
}

请查看HttpListenerContext,以详细了解您可以使用的功能,但是主要的可能是 Request 属性。

关于c# - C#中的Http库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/769156/

10-09 22:54