Exemplo n.º 1
0
        internal void AddHeader(string header)
        {
            int index = header.IndexOf(':');

            if (index == -1)
            {
                this._context.ErrorMessage = "Invalid header";
            }
            else
            {
                string name = header.Substring(0, index).Trim();
                string str2 = header.Substring(index + 1).Trim();
                this._headers.InternalSet(name, str2, false);
                string str3 = name.ToLower(CultureInfo.InvariantCulture);
                if (str3 == "accept")
                {
                    char[] separators = new char[] { ',' };
                    this._acceptTypes = new List <string>(str2.SplitHeaderValue(separators)).ToArray();
                }
                else if (str3 == "accept-language")
                {
                    char[] separator = new char[] { ',' };
                    this._userLanguages = str2.Split(separator);
                }
                else if (str3 == "content-length")
                {
                    long num2;
                    if (!long.TryParse(str2, out num2) || (num2 < 0L))
                    {
                        this._context.ErrorMessage = "Invalid Content-Length header";
                    }
                    else
                    {
                        this._contentLength    = num2;
                        this._contentLengthSet = true;
                    }
                }
                else if (str3 != "content-type")
                {
                    if (str3 == "referer")
                    {
                        this._referer = str2.ToUri();
                    }
                }
                else
                {
                    try
                    {
                        this._contentEncoding = HttpUtility.GetEncoding(str2);
                    }
                    catch
                    {
                        this._context.ErrorMessage = "Invalid Content-Type header";
                    }
                }
            }
        }
Exemplo n.º 2
0
        internal void AddHeader(string header)
        {
            int num = header.IndexOf(':');

            if (num == -1)
            {
                _context.ErrorMessage = "Invalid header";
                return;
            }
            string text  = header.Substring(0, num).Trim();
            string text2 = header.Substring(num + 1).Trim();

            _headers.InternalSet(text, text2, response: false);
            switch (text.ToLower(CultureInfo.InvariantCulture))
            {
            case "accept":
                _acceptTypes = new List <string>(text2.SplitHeaderValue(',')).ToArray();
                break;

            case "accept-language":
                _userLanguages = text2.Split(',');
                break;

            case "content-length":
            {
                if (long.TryParse(text2, out var result) && result >= 0)
                {
                    _contentLength       = result;
                    _contentLengthWasSet = true;
                }
                else
                {
                    _context.ErrorMessage = "Invalid Content-Length header";
                }
                break;
            }

            case "content-type":
                try
                {
                    _contentEncoding = HttpUtility.GetEncoding(text2);
                }
                catch
                {
                    _context.ErrorMessage = "Invalid Content-Type header";
                }
                break;

            case "referer":
                _referer = text2.ToUri();
                break;
            }
        }
        internal void AddHeader(string header)
        {
            long num;
            int  num1 = header.IndexOf(':');

            if (num1 != -1)
            {
                string str  = header.Substring(0, num1).Trim();
                string str1 = header.Substring(num1 + 1).Trim();
                this._headers.InternalSet(str, str1, false);
                string lower = str.ToLower(CultureInfo.InvariantCulture);
                if (lower == "accept")
                {
                    this._acceptTypes = (new List <string>(str1.SplitHeaderValue(new char[] { ',' }))).ToArray();
                }
                else if (lower == "accept-language")
                {
                    this._userLanguages = str1.Split(new char[] { ',' });
                }
                else if (lower == "content-length")
                {
                    if ((!long.TryParse(str1, out num) ? true : num < (long)0))
                    {
                        this._context.ErrorMessage = "Invalid Content-Length header";
                    }
                    else
                    {
                        this._contentLength    = num;
                        this._contentLengthSet = true;
                    }
                }
                else if (lower == "content-type")
                {
                    try
                    {
                        this._contentEncoding = HttpUtility.GetEncoding(str1);
                    }
                    catch
                    {
                        this._context.ErrorMessage = "Invalid Content-Type header";
                    }
                }
                else if (lower == "referer")
                {
                    this._referer = str1.ToUri();
                }
            }
            else
            {
                this._context.ErrorMessage = "Invalid header";
            }
        }
Exemplo n.º 4
0
        internal void AddHeader(string header)
        {
            var colon = header.IndexOf(':');

            if (colon == -1)
            {
                _context.ErrorMessage = "Invalid header";
                return;
            }

            var name = header.Substring(0, colon).Trim();
            var val  = header.Substring(colon + 1).Trim();

            _headers.InternalSet(name, val, false);

            var lower = name.ToLower(CultureInfo.InvariantCulture);

            if (lower == "accept")
            {
                _acceptTypes = new List <string> (val.SplitHeaderValue(',')).ToArray();
                return;
            }

            if (lower == "accept-language")
            {
                _userLanguages = val.Split(',');
                return;
            }

            if (lower == "content-length")
            {
                long len;
                if (Int64.TryParse(val, out len) && len >= 0)
                {
                    _contentLength       = len;
                    _contentLengthWasSet = true;
                }
                else
                {
                    _context.ErrorMessage = "Invalid Content-Length header";
                }

                return;
            }

            if (lower == "content-type")
            {
                try {
                    _contentEncoding = HttpUtility.GetEncoding(val);
                }
                catch {
                    _context.ErrorMessage = "Invalid Content-Type header";
                }

                return;
            }

            if (lower == "referer")
            {
                _referer = val.ToUri();
            }
        }
Exemplo n.º 5
0
        internal void AddHeader(string headerField)
        {
            var colon = headerField.IndexOf(':');

            if (colon < 1)
            {
                _context.ErrorMessage = "Invalid header field";
                return;
            }

            var name = headerField.Substring(0, colon).Trim();

            if (name.Length == 0 || !name.IsToken())
            {
                _context.ErrorMessage = "Invalid header name";
                return;
            }

            var val = colon < headerField.Length - 1
                ? headerField.Substring(colon + 1).Trim()
                : String.Empty;

            _headers.InternalSet(name, val, false);

            var lower = name.ToLower(CultureInfo.InvariantCulture);

            if (lower == "accept")
            {
                _acceptTypes = val.SplitHeaderValue(',').ToList().ToArray();
                return;
            }

            if (lower == "accept-language")
            {
                _userLanguages = val.Split(',');
                return;
            }

            if (lower == "content-length")
            {
                long len;
                if (!Int64.TryParse(val, out len) || len < 0)
                {
                    _context.ErrorMessage = "Invalid Content-Length header";
                    return;
                }

                _contentLength    = len;
                _contentLengthSet = true;

                return;
            }

            if (lower == "content-type")
            {
                try {
                    _contentEncoding = HttpUtility.GetEncoding(val);
                }
                catch {
                    _context.ErrorMessage = "Invalid Content-Type header";
                }

                return;
            }

            if (lower == "referer")
            {
                var referer = val.ToUri();
                if (referer == null)
                {
                    _context.ErrorMessage = "Invalid Referer header";
                    return;
                }

                _referer = referer;
                return;
            }
        }