我正在将小型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/