Пример #1
0
        /// <summary>
        /// Loads the specified original.
        /// </summary>
        /// <param name="original">The original.</param>
        /// <returns></returns>
        public HttpContent Load(HttpContent original)
        {
            var result = this.request.Content.ReadAsStringAsync().Result;

            if (string.IsNullOrEmpty(result))
            {
                return(request.Content);
            }

            /*copy*/
            //this.Headers.ContentType = original.Headers.ContentType;
            //this.Headers.ContentRange = original.Headers.ContentRange;
            //this.Headers.Expires = original.Headers.Expires;
            //this.Headers.LastModified = original.Headers.LastModified;
            //this.Headers.ContentMD5 = original.Headers.ContentMD5;
            //this.Headers.ContentLocation = original.Headers.ContentLocation;
            //this.Headers.ContentLength = original.Headers.ContentLength;
            //this.Headers.ContentDisposition = original.Headers.ContentDisposition;

            //if (original.Headers.Allow.Any())
            //    Array.ForEach(original.Headers.Allow.ToArray(), o => { if (!this.Headers.Allow.Contains(o)) this.Headers.Allow.Add(o); });

            //if (original.Headers.ContentEncoding.Any())
            //    Array.ForEach(original.Headers.ContentEncoding.ToArray(), o => { if (!this.Headers.ContentEncoding.Contains(o)) this.Headers.ContentEncoding.Add(o); });

            //if (original.Headers.ContentLanguage.Any())
            //    Array.ForEach(original.Headers.ContentLanguage.ToArray(), o => { if (!this.Headers.ContentLanguage.Contains(o)) this.Headers.ContentLanguage.Add(o); });

            this.streamContent = new DelegatingStreamContent(this.encryption.Encrypt(result, this.request.Content.Headers.ContentEncoding));
            //this.streamContent = new DelegatingStreamContent(new MemoryStream(Encoding.UTF8.GetBytes(this.encryption.Encrypt(result))));
            return(this);
        }
Пример #2
0
        /// <summary>
        /// Loads this instance.
        /// </summary>
        /// <returns></returns>
        public HttpContent Load()
        {
            var buffer = this.request.Content.ReadAsByteArrayAsync().Result;

            if (buffer == null || buffer.Length == 0)
            {
                return(request.Content);
            }

            //this.streamContent = new DelegatingStreamContent(new MemoryStream(Encoding.UTF8.GetBytes(this.encryption.Decrypt(this.request.Content.ReadAsStringAsync().Result))));

            this.streamContent = new DelegatingStreamContent(this.encryption.Decrypt(buffer, this.request.Content.Headers.ContentEncoding));

            /*copy*/
            this.Headers.ContentType        = request.Content.Headers.ContentType;
            this.Headers.ContentRange       = request.Content.Headers.ContentRange;
            this.Headers.Expires            = request.Content.Headers.Expires;
            this.Headers.LastModified       = request.Content.Headers.LastModified;
            this.Headers.ContentMD5         = request.Content.Headers.ContentMD5;
            this.Headers.ContentLocation    = request.Content.Headers.ContentLocation;
            this.Headers.ContentLength      = request.Content.Headers.ContentLength;
            this.Headers.ContentDisposition = request.Content.Headers.ContentDisposition;

            if (request.Content.Headers.Allow.Any())
            {
                Array.ForEach(request.Content.Headers.Allow.ToArray(), o => { if (!this.Headers.Allow.Contains(o))
                                                                              {
                                                                                  this.Headers.Allow.Add(o);
                                                                              }
                              });
            }

            if (request.Content.Headers.ContentEncoding.Any())
            {
                Array.ForEach(request.Content.Headers.ContentEncoding.ToArray(), o => { if (!this.Headers.ContentEncoding.Contains(o))
                                                                                        {
                                                                                            this.Headers.ContentEncoding.Add(o);
                                                                                        }
                              });
            }

            if (request.Content.Headers.ContentLanguage.Any())
            {
                Array.ForEach(request.Content.Headers.ContentLanguage.ToArray(), o => { if (!this.Headers.ContentLanguage.Contains(o))
                                                                                        {
                                                                                            this.Headers.ContentLanguage.Add(o);
                                                                                        }
                              });
            }

            return(this);
        }