Beispiel #1
0
        private void AddPerson(HttpListenerResponse response, string url)
        {
            var    parameters = WebServer.DecodeParam(url);
            Person person     = new Person();

            foreach (var param in parameters)
            {
                if (param.Name.ToLower() == "first")
                {
                    person.First = param.Value;
                }
                else if (param.Name.ToLower() == "last")
                {
                    person.Last = param.Value;
                }
            }
            if ((person.Last != string.Empty) && (person.First != string.Empty))
            {
                lock (_lock)
                {
                    _persons.Add(person);
                }
                WebServer.OutputHttpCode(response, HttpStatusCode.Accepted);
            }
            else
            {
                WebServer.OutputHttpCode(response, HttpStatusCode.BadRequest);
            }
        }
Beispiel #2
0
        private static void ApiDefault(WebServerEventArgs e)
        {
            string ret = $"HTTP/1.1 200 OK\r\nContent-Type: text/plain; charset=UTF-8\r\nCache-Control: no-cache\r\nConnection: close\r\n\r\n";

            ret += $"Your request type is: {e.Context.Request.HttpMethod}\r\n";
            ret += $"The request URL is: {e.Context.Request.RawUrl}\r\n";
            var parameters = WebServer.DecodeParam(e.Context.Request.RawUrl);

            if (parameters != null)
            {
                ret += "List of url parameters:\r\n";
                foreach (var param in parameters)
                {
                    ret += $"  Parameter name: {param.Name}, value: {param.Value}\r\n";
                }
            }

            if (e.Context.Request.Headers != null)
            {
                ret += $"Number of headers: {e.Context.Request.Headers.Count}\r\n";
            }
            else
            {
                ret += "There is no header in this request\r\n";
            }

            foreach (var head in e.Context.Request.Headers?.AllKeys)
            {
                ret += $"  Header name: {head}, Values:";
                var vals = e.Context.Request.Headers.GetValues(head);
                foreach (var val in vals)
                {
                    ret += $"{val} ";
                }

                ret += "\r\n";
            }

            if (e.Context.Request.ContentLength64 > 0)
            {
                ret += $"Size of content: {e.Context.Request.ContentLength64}\r\n";
                byte[] buff = new byte[e.Context.Request.ContentLength64];
                e.Context.Request.InputStream.Read(buff, 0, buff.Length);
                ret += $"Hex string representation:\r\n";
                for (int i = 0; i < buff.Length; i++)
                {
                    ret += buff[i].ToString("X") + " ";
                }
            }

            WebServer.OutPutStream(e.Context.Response, ret);
        }
Beispiel #3
0
        private static void ParamHtml(WebServerEventArgs e)
        {
            var url = e.Context.Request.RawUrl;
            // Test with parameters
            var    parameters = WebServer.DecodeParam(url);
            string toOutput   = "<html><head>" +
                                "<title>Hi from nanoFramework Server</title></head><body>Here are the parameters of this URL: <br />";

            foreach (var par in parameters)
            {
                toOutput += $"Parameter name: {par.Name}, Value: {par.Value}<br />";
            }
            toOutput += "</body></html>";
            WebServer.OutPutStream(e.Context.Response, toOutput);
        }
Beispiel #4
0
        public void UrlEncode(WebServerEventArgs e)
        {
            var    rawUrl    = e.Context.Request.RawUrl;
            var    paramsUrl = WebServer.DecodeParam(rawUrl);
            string ret       = "Parameters | Encoded | Decoded";

            foreach (var param in paramsUrl)
            {
                ret += $"{param.Name} | ";
                ret += $"{param.Value} | ";
                // Need to wait for latest version of System.Net
                // See https://github.com/nanoframework/lib-nanoFramework.System.Net.Http/blob/develop/nanoFramework.System.Net.Http/Http/System.Net.HttpUtility.cs
                ret += $"{System.Web.HttpUtility.UrlDecode(param.Value)}";
                ret += "\r\n";
            }
            WebServer.OutPutStream(e.Context.Response, ret);
        }