public void HttpSocket3TimeNativeSocket(int count) { var ep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 50651); var req = new HttpRequest { Uri = new Uri("http://127.0.0.1:50651/x2.html") }; var reader = new HttpResponseReader(); var sw = Stopwatch.StartNew(); for (var i = 0; i < count; i++) { HttpResponse r; using (var socket = new Socket(SocketType.Stream, ProtocolType.Tcp)){ socket.Connect(ep); using (var s = new NetworkStream(socket)){ var w = new HttpRequestWriter(s); w.Write(req); r = reader.Read(s); } Assert.Greater(r.StringData.Length, 10); } } sw.Stop(); Console.WriteLine(sw.Elapsed); }
public void CanReadPreamble(int pageSize) { var b = new StringBuilder(); var s = GetStream("HTTP/1.1 200 OK\r\n\r\n"); var reader = new HttpResponseReader { BufferSize = pageSize }; var resp = reader.Read(s); Assert.AreEqual(200, resp.State); Assert.AreEqual("OK", resp.StateName); Assert.True(resp.Success); }
public void CanReadHeaders(int pageSize) { var b = new StringBuilder(); var s = GetStream("HTTP/1.1 200 OK\r\nAaa: Bbb\r\nCcc: Ddd\r\n\r\n"); var reader = new HttpResponseReader { BufferSize = pageSize }; var resp = reader.Read(s); Assert.AreEqual(200, resp.State); Assert.AreEqual("OK", resp.StateName); Assert.AreEqual("Bbb", resp.Headers["Aaa"]); Assert.AreEqual("Ddd", resp.Headers["Ccc"]); Assert.True(resp.Success); }
public void CanReadEncodedData(int pageSize) { var s = GetStream("HTTP/1.1 200 OK\r\nContent-Type: text/html; charset=Windows-1251\r\nAaa: Bbb\r\nCcc: Ddd\r\nContent-Length: 10\r\n\r\nабвгдежзик", Encoding.GetEncoding("Windows-1251")); var reader = new HttpResponseReader { BufferSize = pageSize }; var resp = reader.Read(s); Assert.AreEqual(200, resp.State); Assert.AreEqual("OK", resp.StateName); Assert.AreEqual("Bbb", resp.Headers["Aaa"]); Assert.AreEqual("Ddd", resp.Headers["Ccc"]); Assert.AreEqual(10, resp.ContentLength); Assert.AreEqual(10, resp.Data.Length); Assert.AreEqual("Windows-1251", resp.Charset); Assert.AreEqual("абвгдежзик", resp.StringData); Assert.True(resp.Success); }
public void CanReadData(int pageSize) { var b = new StringBuilder(); var s = GetStream("HTTP/1.1 200 OK\r\nAaa: Bbb\r\nCcc: Ddd\r\nContent-Length: 10\r\n\r\nABCDEFGHIJ"); var reader = new HttpResponseReader { BufferSize = pageSize }; var resp = reader.Read(s); Assert.AreEqual(200, resp.State); Assert.AreEqual("OK", resp.StateName); Assert.AreEqual("Bbb", resp.Headers["Aaa"]); Assert.AreEqual("Ddd", resp.Headers["Ccc"]); Assert.AreEqual(10, resp.ContentLength); Assert.AreEqual(10, resp.Data.Length); Assert.AreEqual("ABCDEFGHIJ", resp.StringData); Assert.True(resp.Success); }
public void CanReadChunkedData(int pageSize) { var b = new StringBuilder(); var s = GetStream("HTTP/1.1 200 OK\r\nAaa: Bbb\r\nCcc: Ddd\r\nTransfer-Encoding: chunked\r\n\r\n2\r\nAB\r\n3\r\nCDE\r\n5\r\nFGHIJ\r\n0\r\n"); var reader = new HttpResponseReader { BufferSize = pageSize }; var resp = reader.Read(s); Assert.AreEqual(200, resp.State); Assert.AreEqual("OK", resp.StateName); Assert.AreEqual("Bbb", resp.Headers["Aaa"]); Assert.AreEqual("Ddd", resp.Headers["Ccc"]); Assert.True(resp.Chunked); Assert.AreEqual("ABCDEFGHIJ", resp.StringData); Assert.AreEqual(10, resp.Data.Length); Assert.True(resp.Success); }