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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }