Example #1
0
 public HttpRequest(HttpRequestKind kind, string resource, HttpVersion version, IHttpMessage message)
 {
     Kind            = kind;
     Resource        = new Resource(resource);
     Version         = version;
     Message         = message;
     validation_code = HttpRequestValidationCode.Valid;
 }
Example #2
0
        public static void ValidateOrThrow(string request, out HttpRequestKind kind, out Resource resource, out HttpVersion version)
        {
            var result = Validate(request, out kind, out resource, out version);

            if (result != HttpRequestValidationCode.Valid)
            {
                throw new InvalidHttpRequestException(result);
            }
        }
    public IDisposable ExecuteHttpRequest(HttpContext context, HttpRequestKind kind)
    {
        var scopes = new IDisposable[_listeners.Length];

        for (var i = 0; i < _listeners.Length; i++)
        {
            scopes[i] = _listeners[i].ExecuteHttpRequest(context, kind);
        }

        return(new AggregateActivityScope(scopes));
    }
Example #4
0
        public static HttpRequestValidationCode Validate(string request, out HttpRequestKind kind, out Resource resource, out HttpVersion version)
        {
            var elements = request?.Split(' ') ?? new string[0];

            kind = elements.Length > 0 ? HttpRequestKindUtils.ParseHttpRequestKind(elements[0]) : HttpRequestKind.Unknown;
            if (kind == HttpRequestKind.Unknown)
            {
                resource = new Resource();
                version  = HttpVersion.Unknown;
                return(HttpRequestValidationCode.RequestUnknown);
            }

            if (elements.Length > 1)
            {
                resource = new Resource(elements[1]);
                if (!resource.IsValid)
                {
                    version = HttpVersion.Unknown;
                    return(HttpRequestValidationCode.InvalidResource);
                }
            }
            else
            {
                resource = new Resource();
                version  = HttpVersion.Unknown;
                return(HttpRequestValidationCode.NoResource);
            }

            if (elements.Length > 2)
            {
                version = HttpVersionUtils.Parse(elements[2]);
                if (version == HttpVersion.Unknown)
                {
                    return(HttpRequestValidationCode.UnknownVersion);
                }
            }
            else
            {
                version = HttpVersion.Unknown;
                return(HttpRequestValidationCode.NoVersion);
            }

            return(HttpRequestValidationCode.Valid);
        }
Example #5
0
        public static bool TryValidate(string request, out HttpRequestKind kind, out Resource resource, out HttpVersion version)
        {
            var result = Validate(request, out kind, out resource, out version);

            return(result == HttpRequestValidationCode.Valid);
        }
Example #6
0
 /// <inheritdoc />
 public virtual IDisposable ExecuteHttpRequest(HttpContext context, HttpRequestKind kind)
 => EmptyScope;
Example #7
0
 public static string ConvertToString(HttpRequestKind kind)
 {
     return(kind.ToString());
 }