public void Should_Parse_Get_With_QueryString_Ignored() { var options = new IgnoreHttpParserOptions { IgnoreRequestBody = true }; var parsed = Parser.ParseRawRequest(FakeRawRequests.GetWithQueryString, options); Assert.AreEqual("https://httpbin.org/get?name=ryan", parsed.Url); Assert.AreEqual("GET", parsed.Headers["Method"]); Assert.AreEqual(null, parsed.RequestBody); }
public void Should_Parse_Post_Ignore_RequestBody() { var options = new IgnoreHttpParserOptions { IgnoreRequestBody = true }; var parsed = Parser.ParseRawRequest(FakeRawRequests.PostWithRequestBody, options); Assert.AreEqual("https://httpbin.org/post", parsed.Url); Assert.AreEqual("POST", parsed.Headers["Method"]); Assert.AreEqual(1, parsed.Cookies.Count); Assert.AreEqual("chocchip", parsed.Cookies["ilikecookies"]); Assert.AreEqual(null, parsed.RequestBody); }
public static ParsedHttpRequest ParseRawRequest(string raw, IgnoreHttpParserOptions options = null) { try { var lines = SplitLines(raw); var requestLine = new RequestLine(lines); var requestHeaders = new RequestHeaders(lines); requestHeaders.AddHeader("Method", requestLine.Method); requestHeaders.AddHeader("HttpVersion", requestLine.HttpVersion); var requestCookies = new RequestCookies(lines); var requestBody = new RequestBody(requestLine, lines); var parsed = new ParsedHttpRequest(options) { Url = requestLine.Url, Uri = new Uri(requestLine.Url), Headers = requestHeaders.Headers, Cookies = requestCookies.ParsedCookies, RequestBody = requestBody.Body }; parsed.ApplyIgnoreOptions(); return(parsed); } catch (CouldNotParseHttpRequestException c) { Console.WriteLine($"Could not parse the raw request. {c.Message}"); throw; } catch (Exception e) { Console.WriteLine($"Unhandled error parsing the raw request: {raw}\r\nError {e.Message}"); throw; } }