コード例 #1
0
        /// <summary>
        /// Generates reply using the socket stream
        /// </summary>
        /// <param name="networkStreamWriter"></param>
        /// <param name="request"></param>
        private static async Task GenerateReplyToRequest(NetworkStream networkStreamWriter, RawHttpRequest request)
        {
            // Echo the data back to the client.
            HttpResponse response;
            IHttpParser  parser;

            if (request.Type == HttpRequestType.Get)
            {
                parser   = new GetParser(request.Content);
                response = parser.ParseHttpRequest();
            }
            else if (request.Type == HttpRequestType.Post)
            {
                parser   = new PostParser(request.Content);
                response = parser.ParseHttpRequest();
            }
            else
            {
                Console.WriteLine("[DEBUG]TEST Message received sucessfully...");
                var testReply = "[REPLY]Echo Complete...".GetBytes();
                await networkStreamWriter.WriteAsync(testReply, 0, testReply.Length);

                return;
            }
            Console.WriteLine("Response:" + response.StatusCode);
            byte[] reply = response.Construct();
            await networkStreamWriter.WriteAsync(reply, 0, reply.Length);
        }