public HttpRequest(byte[] headerBytes, IConfigurationManager configurationManager, ILogger logger) { _configurationManager = configurationManager; this.logger = logger; string data = Encoding.ASCII.GetString(headerBytes); // construct header from http data string[] datas = data.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); // First line string[] parts = datas[0].Split(' '); Verb = (HttpVerb)Enum.Parse(typeof(HttpVerb), parts[0], true); Path = parts[1]; HttpVersion = parts[2]; // Subsequent lines for (int i = 1; i < datas.Length; i++) { string key = datas[i].Substring(0, datas[i].IndexOf(':')); string value = datas[i].Substring(datas[i].IndexOf(' ') + 1); RequestHeader.Add(key, value); } // Uri Uri = new Uri($"http://{RequestHeader["Host"]}{Path}"); }
private static Request BuildRequest(HttpContext context) { var stream = context.Request.Body; using (var streamReader = new StreamReader(stream)) { var request = new Request() { Content = streamReader.ReadToEnd(), RequestHeader = BuildRequestHeader(), }; return(request); } RequestHeader BuildRequestHeader() { var requestHeader = new RequestHeader(); foreach (KeyValuePair <string, StringValues> keyValuePair in context.Request.Headers) { requestHeader.Add(keyValuePair.Key, keyValuePair.Value); } return(requestHeader); } }
public void Contains_WhenHeadersDoesNotContainAMatchingKeyValuePair_ReturnsFalse() { RequestHeader header = new RequestHeader(); header.Add("test", new[] { "test_value" }); header.Contains("I_do_not_exist_as_a_key") .Should().BeFalse(); }
public void Contains_WhenHeadersContainAMatchingKeyValuePair_ReturnsTrue() { RequestHeader header = new RequestHeader(); header.Add("test", new[] { "test_value" }); header.Contains("test") .Should().BeTrue(); }
public void Add_CanAddRequestHeaderKeyValuePair() { RequestHeader header = new RequestHeader(); header.Add("test", new[] { "test_value" }); header.HeadersInternal.Keys.Should().Contain("test"); header.HeadersInternal.Values.Should().BeEquivalentTo(new[] { new[] { "test_value" } }); }
public void ContainsKeyAndValues_WhenHeadersContainsKeyButNotMatchingValues_ReturnsFalse() { RequestHeader header = new RequestHeader(); header.Add("test", new[] { "test_value" }); header.ContainsKeyAndValues("test", new[] { "this_value_doesnt_exist" }) .Should().BeFalse(); }
public void ContainsKeyAndValues_WhenHeadersContainsKeyAndValues_ReturnsTrue() { RequestHeader header = new RequestHeader(); header.Add("test", new[] { "test_value" }); header.ContainsKeyAndValues("test", new[] { "test_value" }) .Should().BeTrue(); }
public void ContainsKeyAndValues_WhenHeadersDoesNotContainKey_ReturnsFalse() { RequestHeader header = new RequestHeader(); header.Add("this_key_does_not_exist", new[] { "test_value" }); header.ContainsKeyAndValues("test", new[] { "test_value" }) .Should().BeFalse(); }