public string ToHttp() { return(HttpRequestKindUtils.ConvertToString(Kind) + " " + Resource.Representation + " " + HttpVersionUtils.ConvertToString(Version) + "\r\n" + Message.ToHttp()); }
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); }