コード例 #1
0
            internal void Serve(HttpListenerContext context, string resourcesPath)
            {
                Console.WriteLine("starting serving " + context.Request.HttpMethod + " " + context.Request.RawUrl + " on thread " + Thread.CurrentThread.ManagedThreadId);
                string body = readRequstBody(context.Request);

                Console.WriteLine(body);

                _staticData = new Member[] { };
                Dictionary <string, object> dict = new JavaScriptSerializer().Deserialize <Dictionary <string, object> >(body);


                Thread.Sleep(10000);

                using (StreamReader reader = new StreamReader(resourcesPath, Encoding.Unicode))
                {
                    Console.WriteLine("starting reading from the static file " + resourcesPath);
                    try
                    {
                        _staticData = JSONableExtensions.FromJsonArray <Member>(reader.ReadToEnd());
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                    finally
                    {
                        byte[] b = Encoding.UTF8.GetBytes("ACK");
                        context.Response.StatusCode      = 200;
                        context.Response.KeepAlive       = false;
                        context.Response.ContentLength64 = b.Length;

                        var output = context.Response.OutputStream;
                        output.Write(b, 0, b.Length);
                        context.Response.Close();

                        Console.WriteLine("finished reading from the static file " + resourcesPath);
                        DataProcessing(dict);
                    }
                }
                Console.WriteLine("finished serving " + context.Request.RawUrl + " on thread " + Thread.CurrentThread.ManagedThreadId);
            }
コード例 #2
0
        internal void ServeStatic(HttpListenerContext context)
        {
            Console.WriteLine("starting serving... " + context.Request.HttpMethod + " " + context.Request.RawUrl + " on thread " + Thread.CurrentThread.ManagedThreadId);
            _staticData = new Member[] {};
            _requstBody = ReadRequstBody(context);

            //Thread.Sleep(10000);

            Console.WriteLine("finished to serving... " + context.Request.RawUrl + " on thread " + Thread.CurrentThread.ManagedThreadId);

            if (File.Exists(_resourcesPath))
            {
                var json = new JavaScriptSerializer();

                using (StreamReader file = File.OpenText(_resourcesPath))
                {
                    Console.WriteLine("starting reading from the static file " + _resourcesPath);
                    try
                    {
                        string input = file.ReadToEnd();
                        _staticData = JSONableExtensions.FromJsonArray <Member>(input);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                    finally
                    {
                        Console.WriteLine("finished reading from the static file " + _resourcesPath);
                        DataProcessing(_requstBody, _staticData);
                    }
                }
            }
            else
            {
                Console.WriteLine("Static data file doesn't exist");
                context.Response.StatusCode = 404;
                context.Response.Close();
            }
        }