Beispiel #1
0
        private static async Task <byte[]> DeflateEchoValue(string path)
        {
            var response = await Handlers.LoadResponse(path);

            byte[] bodyArray = Encoding.UTF8.GetBytes(response.Body.ToString());

            MemoryStream memory = new MemoryStream();

            using (DeflateStream gzip = new DeflateStream(memory, CompressionMode.Compress, true))
            {
                gzip.Write(bodyArray, 0, bodyArray.Length);
            }
            byte[] compressedArray = memory.ToArray();

            string intro = String.Format("HTTP/1.1 {0} OK\r\n", response.StatusCode);

            string headers = Handlers.BuildHeaders(response.Headers);

            headers = headers + string.Format("Content-Length: {0}\r\n\r\n", compressedArray.Length);

            byte[] headerArray = Encoding.UTF8.GetBytes(intro + headers);

            byte[] result = headerArray.Concat(compressedArray).ToArray();
            return(result);
        }
Beispiel #2
0
        private async Task <byte[]> ResponseHandler(string path)
        {
            var response = await Handlers.LoadResponse(path);

            byte[] bodyArray = Encoding.UTF8.GetBytes(response.Body.ToString());

            string intro = String.Format("HTTP/1.1 {0} OK\r\n", response.StatusCode);

            string headers = Handlers.BuildHeaders(response.Headers);

            headers = headers + string.Format("Content-Length: {0}\r\n\r\n", bodyArray.Length);

            byte[] headerArray = Encoding.UTF8.GetBytes(intro + headers);

            byte[] result = headerArray.Concat(bodyArray).ToArray();
            return(result);
        }
Beispiel #3
0
        private async static Task <byte[]> UrlToStatusCodeHandler(string path)
        {
            var response = await Handlers.LoadResponse(path);

            byte[] bodyArray = Encoding.UTF8.GetBytes(response.Body.ToString());

            string intro = String.Format("HTTP/1.1 {0} OK\r\n", "404");

            string headers = Handlers.BuildHeaders(response.Headers);

            headers = headers + string.Format("Content-Length: {0}\r\n", bodyArray.Length);

            byte[] headerArray = Encoding.UTF8.GetBytes(intro + headers);

            byte[] result = headerArray.Concat(bodyArray).ToArray();
            return(result);

            //obj.Response.StatusCode = int.Parse(obj.Request.Url.Segments.Last());
        }
Beispiel #4
0
        private async static Task <byte[]> UsernamePasswordEchoHandler(HttpServerRequest request)
        {
            var response = await Handlers.LoadResponse(request.Path);

            var authHeader = request.Headers["Authorization"];

            byte[] base64 = Convert.FromBase64String(authHeader.Substring("Basic ".Length));
            var    parts  = Encoding.UTF8.GetString(base64, 0, base64.Length).Split(':');

            byte[] bodyArray = Encoding.UTF8.GetBytes(string.Join("|", parts));

            string intro = String.Format("HTTP/1.1 {0} OK\r\n", response.StatusCode);

            string headers = Handlers.BuildHeaders(response.Headers);

            headers = headers + string.Format("Content-Length: {0}\r\n\r\n", bodyArray.Length);

            byte[] headerArray = Encoding.UTF8.GetBytes(intro + headers);

            byte[] result = headerArray.Concat(bodyArray).ToArray();
            return(result);
        }