Exemplo n.º 1
0
        private void ServerOnHandlePost(SimpleHttpProcessor httpProcessor, StreamReader streamReader)
        {
            var resourceName = httpProcessor.Url.Substring(1);
            var body         = streamReader.ReadToEnd();
            var formData     = JsonConvert.DeserializeObject <JObject>(body).AsJEnumerable().Cast <JProperty>()
                               .ToDictionary(data => data.Name, data => Convert.ToString(data.Value, CultureInfo.InvariantCulture));

            var queryString  = HttpUtility.ParseQueryString(httpProcessor.Query);
            var paramObjects = queryString.AllKeys
                               .ToDictionary(key => key, key => queryString[key]);

            var session = GetSession(httpProcessor);
            var content = _resourceLoader.Post(session, resourceName, paramObjects, formData);

            if (content == null)
            {
                httpProcessor.WriteNotFound();
                return;
            }
            httpProcessor.WriteSuccess(content.ContentType);
            if (content.IsBinary)
            {
                httpProcessor.WriteContent(content.Data);
            }
            else
            {
                httpProcessor.WriteContent(content.Text);
            }
        }