Ejemplo n.º 1
0
 internal HttpResponseHeader(string unknownHeader, string value, bool enableHeaderChecking)
 {
     if (enableHeaderChecking)
     {
         HttpEncoder.Current.HeaderNameValueEncode(unknownHeader, value, out _unknownHeader, out _value);
         _knownHeaderIndex = HttpWorkerRequest.GetKnownResponseHeaderIndex(_unknownHeader);
     }
     else
     {
         _unknownHeader    = unknownHeader;
         _knownHeaderIndex = HttpWorkerRequest.GetKnownResponseHeaderIndex(_unknownHeader);
         _value            = value;
     }
 }
Ejemplo n.º 2
0
        internal void WriteHeaders(bool final_flush)
        {
            if (headers_sent)
            {
                return;
            }

            //
            // Flush
            //
            if (context != null)
            {
                HttpApplication app_instance = context.ApplicationInstance;
                if (app_instance != null)
                {
                    app_instance.TriggerPreSendRequestHeaders();
                }
            }

            headers_sent = true;

            if (cached_response != null)
            {
                cached_response.SetHeaders(headers);
            }

            // If this page is cached use the cached headers
            // instead of the standard headers
            NameValueCollection write_headers;

            if (cached_headers != null)
            {
                write_headers = cached_headers;
            }
            else
            {
                write_headers = Headers;
                AddHeadersNoCache(write_headers, final_flush);
            }

            if (WorkerRequest != null)
            {
                WorkerRequest.SendStatus(status_code, StatusDescription);
            }

            if (WorkerRequest != null)
            {
                string   header_name;
                string[] values;
                int      header_index;

                for (int i = 0; i < write_headers.Count; i++)
                {
                    header_name  = write_headers.GetKey(i);
                    header_index = HttpWorkerRequest.GetKnownResponseHeaderIndex(header_name);
                    values       = write_headers.GetValues(i);
                    if (values == null)
                    {
                        continue;
                    }

                    foreach (string val in values)
                    {
                        if (header_index > -1)
                        {
                            WorkerRequest.SendKnownResponseHeader(header_index, val);
                        }
                        else
                        {
                            WorkerRequest.SendUnknownResponseHeader(header_name, val);
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
 internal HttpResponseHeader(String unknownHeader, String value)
 {
     _unknownHeader    = unknownHeader;
     _knownHeaderIndex = HttpWorkerRequest.GetKnownResponseHeaderIndex(_unknownHeader);
     _value            = value;
 }