--- embedio-master\Unosquare.Labs.EmbedIO\Extensions.cs +++ embedio-master\Unosquare.Labs.EmbedIO\Extensions.cs @@ -218,6 +218,10 @@ var body = context.RequestBody(); return body == null ? null : JsonConvert.DeserializeObject(body); } + public static T ParseJson(this HttpListenerContext context, string body) + where T : class { + return body == null ? null : JsonConvert.DeserializeObject(body); + } /// /// Retrieves the request body @@ -267,22 +271,16 @@ /// public static Dictionary RequestFormData(this HttpListenerContext context) { - var request = context.Request; - if (request.HasEntityBody == false) return null; - - using (var body = request.InputStream) - { - using (var reader = new StreamReader(body, request.ContentEncoding)) - { - var stringData = reader.ReadToEnd(); - - if (string.IsNullOrWhiteSpace(stringData)) return null; - - return stringData.Split('&') - .ToDictionary(c => c.Split('=')[0], - c => WebUtility.UrlDecode(c.Split('=')[1])); - } - } + var body = context.RequestBody(); + if (string.IsNullOrWhiteSpace(body)) return null; + + return body.FormData(); + } + + public static Dictionary FormData(this string stringData) { + return stringData.Split('&') + .ToDictionary(c => c.Split('=')[0], + c => WebUtility.UrlDecode(c.Split('=')[1])); } ///