public HttpRequest(HttpRequestLine requestLine, HttpHeaders headers, byte[] body, HttpHeaders trailers, string scheme = null) { this.RequestLine = requestLine ?? HttpRequestLine.Empty; this.Headers = headers ?? HttpHeaders.Empty; this.Body = body; this.Trailers = trailers ?? HttpHeaders.Empty; this.scheme = scheme; if (this.RequestLine.IsValid && this.Headers.IsValid) { this.NormalizeHost(); } }
/// <summary> /// 解析(要改行) /// </summary> /// <param name="source"></param> /// <param name="requestLine"></param> /// <returns></returns> public static bool TryParse(string source, out HttpRequestLine requestLine) { try { var groups = requestLinePattern.Match(source).Groups; var method = new HttpMethod(groups[1].Value); var target = groups[2].Value; var version = new Version(int.Parse(groups[3].Value), int.Parse(groups[4].Value)); requestLine = new HttpRequestLine(source, method, target, version); return(requestLine.IsValid); } catch (Exception) { requestLine = new HttpRequestLine(source, null, null, null); return(false); } }