private async Task Listen() { while (isOpen) { await listener.GetContextAsync().ContinueWith(async t => { var ctx = await t; if (ctx.Request.HttpMethod != "POST") { ReturnErrorResponse(ctx, "POST is the only verb that is understood"); } try { await Task.Run(() => { var endpointUri = uri.MakeRelativeUri(ctx.Request.Url).ToString(); var message = streamHandler.ReadToString(ctx.Request.InputStream); var response = ProcessMessage(endpointUri, message); Reply(ctx, response); }); } catch (Exception ex)//Must catch all to return error { ReturnErrorResponse(ctx, ex.Message); } }); } }
public string Request(string request) { var client = WebRequest.Create(uri); client.Method = "POST"; client.ContentType = Constants.ContentType;//should be depeding on serialization tech. streamHandler.WriteToStream(request.ToByteArray(), client.GetRequestStream()); var resp = client.GetResponse(); return(streamHandler.ReadToString(resp.GetResponseStream())); }