コード例 #1
0
 public string ToHttp()
 {
     return(HttpVersionUtils.ConvertToString(Version)
            + " "
            + HttpStatusCodeUtils.ConvertToNumberString(StatusCode)
            + " "
            + HttpStatusCodeUtils.ConvertToFormattedString(StatusCode)
            + "\r\n"
            + Message.ToHttp());
 }
コード例 #2
0
 public string ToHttp()
 {
     return(HttpRequestKindUtils.ConvertToString(Kind)
            + " "
            + Resource.Representation
            + " "
            + HttpVersionUtils.ConvertToString(Version)
            + "\r\n"
            + Message.ToHttp());
 }
コード例 #3
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);
        }
コード例 #4
0
        public static HttpResponseValidationCode Validate(string response, out HttpVersion version, out HttpStatusCode status)
        {
            var elements = response?.Split(' ') ?? new string[0];

            if (elements.Length > 0)
            {
                version = HttpVersionUtils.Parse(elements[0]);
                if (version == HttpVersion.Unknown)
                {
                    status = HttpStatusCode.Unkown;
                    return(HttpResponseValidationCode.UnknownVersion);
                }
            }
            else
            {
                version = HttpVersion.Unknown;
                status  = HttpStatusCode.Unkown;
                return(HttpResponseValidationCode.NoVersion);
            }

            if (elements.Length > 1)
            {
                var stat_int_success = int.TryParse(elements[1], out int stat_int);
                if (!stat_int_success)
                {
                    status = HttpStatusCode.Unkown;
                    return(HttpResponseValidationCode.StatusNotInt);
                }

                var stat_sucecss = HttpStatusCodeUtils.ConvertFromNumber(stat_int, out status);
                if (!stat_sucecss)
                {
                    return(HttpResponseValidationCode.UnknownStatus);
                }
            }
            else
            {
                status = HttpStatusCode.Unkown;
                return(HttpResponseValidationCode.NoStatus);
            }

            return(HttpResponseValidationCode.Valid);
        }