Ejemplo n.º 1
0
        protected override ContentRedirector ResolveDataRedirector(HttpRequestMetadata metadata)
        {
            ContentRedirector dataRedirector = null;

            if (metadata.Headers.ContainsName("Content-Length"))
            {
                var length = metadata.Headers.GetContentLength();
                dataRedirector = new FixedSizeContentRedirector(
                    this.Relay.StopSignal,
                    this.SourceStream,
                    this.SourceBuffer,
                    this.DestinationStream,
                    length);
            }

            return(dataRedirector);
        }
Ejemplo n.º 2
0
        protected override ContentRedirector ResolveDataRedirector(HttpResponseMetadata metadata)
        {
            ContentRedirector dataRedirector = null;

            if (metadata.Headers.ContainsName("Content-Length"))
            {
                var length = metadata.Headers.GetContentLength();
                dataRedirector = new FixedSizeContentRedirector(
                    this.Relay.StopSignal,
                    this.SourceStream,
                    this.SourceBuffer,
                    this.DestinationStream,
                    length);
            }
            else if (metadata.Headers.ContainsName("Transfer-Encoding"))
            {
                var transferEncoding = metadata.Headers.GetTransferEncoding();
                if (transferEncoding == HttpTransferEncoding.Chunked)
                {
                    dataRedirector = new ChunkedContentRedirector(
                        this.Relay.StopSignal,
                        this.SourceStream,
                        this.SourceBuffer,
                        this.DestinationStream);
                }
                else
                {
                    throw new NotImplementedException();
                }
            }
            else
            {
                throw new NotImplementedException();
            }

            return(dataRedirector);
        }