Я пытаюсь создать приложение 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);
}
}