我想知道是否有任何实现类似功能的例子? HttpListener可以同时处理多少个请求?
我将有一个消息队列来存储来自客户端的请求.我将不得不设置一个测试客户端将请求发送到HttpListener以进行测试.我应该设置WebRequest或其他东西来测试HttpListener吗?
我想知道是否有任何实现类似功能的例子? HttpListener可以同时处理多少个请求?
我将有一个消息队列来存储来自客户端的请求.我将不得不设置一个测试客户端将请求发送到HttpListener以进行测试.我应该设置WebRequest或其他东西来测试HttpListener吗?
public void RunServer() { var prefix = "http://*:4333/"; HttpListener listener = new HttpListener(); listener.Prefixes.Add(prefix); try { listener.Start(); } catch (HttpListenerException hlex) { return; } while (listener.IsListening) { var context = listener.GetContext(); ProcessRequest(context); } listener.Close(); } private void ProcessRequest(HttpListenerContext context) { // Get the data from the HTTP stream var body = new StreamReader(context.Request.InputStream).ReadToEnd(); byte[] b = Encoding.UTF8.GetBytes("ACK"); context.Response.StatusCode = 200; context.Response.KeepAlive = false; context.Response.ContentLength64 = b.Length; var output = context.Response.OutputStream; output.Write(b,b.Length); context.Response.Close(); }
从请求中获取XML的主要部分是这一行:
var body = new StreamReader(context.Request.InputStream).ReadToEnd();
这将为您提供HTTP请求的正文,该请求应包含您的XML.您可以将其直接发送到任何可以从流中读取的XML库,但是如果将杂散的HTTP请求也发送到您的服务器,请确保查看异常.