Ejemplo n.º 1
0
        } // ReadToEndOfHeaders

        protected void WriteHeaders(ITransportHeaders headers, Stream outputStream)
        {
            IEnumerator          it        = null;
            BaseTransportHeaders wkHeaders = headers as BaseTransportHeaders;

            if (wkHeaders != null)
            {
                // write out well known headers
                //   NOTE: RequestUri is written out elsewhere.

                if (wkHeaders.ContentType != null)
                {
                    WriteContentTypeHeader(wkHeaders.ContentType, outputStream);
                }

                it = wkHeaders.GetOtherHeadersEnumerator();
            }
            else
            {
                it = headers.GetEnumerator();
            }


            // write custom headers
            if (it != null)
            {
                while (it.MoveNext())
                {
                    DictionaryEntry header = (DictionaryEntry)it.Current;

                    String headerName = (String)header.Key;

                    if (!StringHelper.StartsWithDoubleUnderscore(headerName)) // exclude special headers
                    {
                        String headerValue = header.Value.ToString();

                        if (wkHeaders == null)
                        {
                            if (String.Compare(headerName, "Content-Type", StringComparison.OrdinalIgnoreCase) == 0)
                            {
                                WriteContentTypeHeader(headerValue, outputStream);
                                continue;
                            }
                        }

                        WriteCustomHeader(headerName, headerValue, outputStream);
                    }
                } // while (it.MoveNext())
            }

            // write EndOfHeaders token
            WriteUInt16(TcpHeaders.EndOfHeaders, outputStream);
        } // WriteHeaders
Ejemplo n.º 2
0
        protected void WriteHeaders(ITransportHeaders headers, Stream outputStream)
        {
            IEnumerator          otherHeadersEnumerator = null;
            BaseTransportHeaders headers2 = headers as BaseTransportHeaders;

            if (headers2 != null)
            {
                if (headers2.ContentType != null)
                {
                    this.WriteContentTypeHeader(headers2.ContentType, outputStream);
                }
                otherHeadersEnumerator = headers2.GetOtherHeadersEnumerator();
            }
            else
            {
                otherHeadersEnumerator = headers.GetEnumerator();
            }
            if (otherHeadersEnumerator != null)
            {
                while (otherHeadersEnumerator.MoveNext())
                {
                    DictionaryEntry current = (DictionaryEntry)otherHeadersEnumerator.Current;
                    string          key     = (string)current.Key;
                    if (!StringHelper.StartsWithDoubleUnderscore(key))
                    {
                        string str2 = current.Value.ToString();
                        if ((headers2 == null) && (string.Compare(key, "Content-Type", StringComparison.OrdinalIgnoreCase) == 0))
                        {
                            this.WriteContentTypeHeader(str2, outputStream);
                        }
                        else
                        {
                            this.WriteCustomHeader(key, str2, outputStream);
                        }
                    }
                }
            }
            base.WriteUInt16(0, outputStream);
        }