Как заставить данные (JSON) из запроса POST автоматически попадать в переменную? - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь создать приложение WinForm с веб-сервером.
Сделал так:
1. Я использую github.com - "eske / SimpleHttpServer" - ссылка
(https://github.com/jeske/SimpleHttpServer).
2. Создан проект WinForm.
3. Добавлена ​​ссылка на проект библиотеки SimpleHttpServer
.. \ SimpleHttpServer \ bin \ Debug \ SimpleHttpServer.dll
4. Добавлен код в Form1. (См. Ниже «Мой код»").

Вопросы
1. Правильно ли я подключил сервер и WinForm?
2. Как создать данные (JSON), которые передаются в запросе POSTчтобы мой сервер автоматически попадал в нужную мне переменную в WinForm?

Другими словами: как только на сервер поступает POST-запрос, данные автоматически помещаются в переменную.
Моя цель: познакомиться с принципами работы Viber Api.
Для этого я предлагаю разместить приложение на локальном компьютере.
WinWorm (пользовательский интерфейс), который будет взаимодействовать с сервером Viber Api).Все размещено на одном компьютере и используется одним пользователем.
С помощью Ngrok приложение будет открыто для Интернета.
Сервис Ngrok предоставляет ссылки для http: // localhost: XXXXX ссылок, таких как https: // 6eb5a091.ngrok.io /

Мой код.

 private void Form1_Load(object sender, EventArgs e)
{
            StartHttpServer();
}


static void StartHttpServer()
        {
            try
            {           

                // var route_config = new List<Models.Route>()
                var route_config = new List<Route>()
                {
                    new Route
                    {
                        Name = "Привет обработчик (Hello Handler)",
                        UrlRegex = @"^/$",
                        Method = "GET",

                        Callable = (HttpRequest request) =>
                        {
                            return new HttpResponse()
                            {
                                ContentAsUTF8 = "Привет от простого сервера Http (Hello from SimpleHttpServer)",
                                ReasonPhrase = "OK",
                                StatusCode = "200"
                            };
                        }
                    }, 
                    //new Route {   
                    //    Name = "FileSystem Static Handler",
                    //    UrlRegex = @"^/Static/(.*)$",
                    //    Method = "GET",
                    //    Callable = new FileSystemRouteHandler() { BasePath = @"C:\Tmp", ShowDirectories=true }.Handle,
                    //},
                };

                    HttpServer httpServer = new HttpServer(8080, route_config);

                    Thread thread = new Thread(new ThreadStart(httpServer.Listen));
                    thread.Start();
            }
            catch (Exception ex)
            {
                string s = ex.Message;
                string t = ex.StackTrace;
                // throw;
                MessageBox.Show(s + " \r\n "
                                  + t);
            }

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...