コード例 #1
0
 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();
     }
 }
コード例 #2
0
 /// <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);
     }
 }