Example #1
0
        public HttpSessionHandler(ClientSession clientSession, HttpServerOptions options)
        {
            _options       = options ?? throw new ArgumentNullException(nameof(options));
            _clientSession = clientSession ?? throw new ArgumentNullException(nameof(clientSession));

            RequestReader  = new RawHttpRequestReader(clientSession.Client.ReceiveStream, options);
            ResponseWriter = new RawHttpResponseWriter(clientSession.Client.SendStream, options);
        }
Example #2
0
        public void HttpRequestReader_ParseWithContentLength()
        {
            var buffer = new MemoryStream(Encoding.UTF8.GetBytes(GetRequestTextWithContentLength()))
            {
                Position = 0
            };
            var parser = new RawHttpRequestReader(buffer, new HttpServerOptions());

            var request = parser.ReadAsync(CancellationToken.None).Result;

            var bodyReader = new RequestBodyHandler();

            Assert.IsTrue(request != null, "Parse failed.");
            Assert.AreEqual("Body123{}%!(:<>=", Encoding.UTF8.GetString(StreamToArray(request.Body)));
        }
Example #3
0
        public void HttpRequestReader_ParseWithoutContentLength()
        {
            var buffer = new MemoryStream(Encoding.UTF8.GetBytes(GetRequestTextWithoutContentLength()))
            {
                Position = 0
            };
            var parser = new RawHttpRequestReader(buffer, new HttpServerOptions());

            var request = parser.ReadAsync(CancellationToken.None).Result;

            Assert.IsTrue(request != null, "Parse failed.");
            Assert.AreEqual(HttpMethod.Delete, request.Method);
            Assert.AreEqual("/Uri%20/lalalo323/_/-/+/%/@/&/./~/:/#/;/,/*", request.Uri);
            Assert.AreEqual("Body123{}%!(:<>=", Encoding.UTF8.GetString(StreamToArray(request.Body)));
            Assert.AreEqual(HttpVersion.Version1_1, request.Version);
            Assert.AreEqual("localhost:2400", request.Headers["Host"]);
            Assert.AreEqual("keep-alive", request.Headers["Connection"]);
            Assert.AreEqual("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", request.Headers["Accept"]);
            Assert.AreEqual("1", request.Headers["Upgrade-Insecure-Requests"]);
            Assert.AreEqual("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36", request.Headers["User-Agent"]);
            Assert.AreEqual("gzip, deflate, sdch", request.Headers["Accept-Encoding"]);
            Assert.AreEqual("de,en-US;q=0.8,en;q=0.6,de-DE;q=0.4", request.Headers["Accept-Language"]);
        }