【发布时间】:2021-07-19 10:25:19
【问题描述】:
我正在尝试为个人项目编写 C# http 服务器,我想知道如何将返回的服务器标头从 Microsoft-HTTPAPI/2.0 更改为其他内容?
public class HttpWebServer
{
private HttpListener Listener;
public void Start()
{
Listener = new HttpListener();
Listener.Prefixes.Add("http://*:5555/");
Listener.Start();
Listener.BeginGetContext(ProcessRequest, Listener);
Console.WriteLine("Connection Started");
}
public void Stop()
{
Listener.Stop();
}
private void ProcessRequest(IAsyncResult result)
{
HttpListener listener = (HttpListener)result.AsyncState;
HttpListenerContext context = listener.EndGetContext(result);
string responseString = "<html>Hello World</html>";
byte[] buffer = Encoding.UTF8.GetBytes(responseString);
context.Response.ContentLength64 = buffer.Length;
System.IO.Stream output = context.Response.OutputStream;
output.Write(buffer, 0, buffer.Length);
output.Close();
Listener.BeginGetContext(ProcessRequest, Listener);
}
}
【问题讨论】:
-
IIS7 速度更快,多线程优势
-
在基本层面,我怀疑
HttpListener调用http.sys,因此Http内核队列应该是一样的
标签: c# http httplistener