HttpListenerを使用して着信HTTP POSTを処理することができます。ほとんどの場合、リスナーのチュートリアルに従うことができます。ここで私はそれをやっている方法である(この点に注意してください時点で1つの以上の要求を処理するために、syncronousである、あなたは、スレッドまたは少なくとも非同期メソッドを使用したいと思うでしょう。)
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, 0, b.Length);
context.Response.Close();
}
なる主要部分要求からのXMLは次の行です:
var body = new StreamReader(context.Request.InputStream).ReadToEnd();
これは、XMLを含むHTTP要求の本文を提供します。ストリームから読み込むことができる任意のXMLライブラリに直接送信できますが、迷子なHTTPリクエストもサーバーに送信された場合は、例外を監視するようにしてください。