У меня есть сервер NodeMCU, на который я отправляю HTTP-запросы из моего c# сценария для включения / выключения светодиодов и т. Д. c. Я собираюсь проверить, подключен ли сервер NodeMCU к точке доступа или нет.
При отправке HTTP-запроса на http://192.168.43.90/LED=ON, если сервер выключен или нет После подключения к точке доступа исключение (System.AggregateException) генерируется оператором http.wait () (в методе IsServerConnectedToAP ()), затем в его блоке перехвата я возвращаю «false». Если я не получаю никакого исключения затем я возвращаю 'true' и увеличиваю индикатор выполнения до 50%, а когда возвращается FALSE, я отображаю окно сообщения. Окно сообщения должно продолжать отображаться до тех пор, пока сервер NodeMCU не подключится к точке доступа.
Когда я отправляю HTTP-запрос на http://192.168.43.90/LED=ON, индикатор NodeMCU включается, но индикатор выполнения не продвигается, и если я делаю запрос на разрыв, отключив его от точки доступа, окно сообщения также не появляется. Прикрепив мой код ниже
'' '
пространство имен Diagnostic_GUI {
publi c частичный класс Form6: Form
{
public Form6()
{
InitializeComponent();
}
private void Form6_Load(object sender, EventArgs e)
{
circularProgressBar1.Value =0;
}
private void button1_Click(object sender, EventArgs e)
{
if (p.IsServerConnectedToAP())
{
Console.WriteLine("true");
circularProgressBar1.Value += 50;
}
else
{
do
{
DialogResult press = MessageBox.Show("Server is either powered OFF/not connected to the Access Point", "Note", MessageBoxButtons.OK);
} while (!p.IsServerConnectedToAP());
circularProgressBar1.Value += 50;
}
}
}}
'' '
пространство имен Diagnostic_GUI {
publi c частичный класс inialization_checks {
public bool IsServerConnectedToAP()
{
//1.send http request to the root(/)
var http = Send_HTTP_Req_NodeMCU_Server("http://192.168.43.90/LED=ON");
try
{
http.Wait();
}
catch (System.AggregateException)
{ return false; }
return true;
}
static async Task Send_HTTP_Req_NodeMCU_Server(string URI)
{
using (var client = new HttpClient())
{
var result = await client.GetAsync(URI);
}
}
}
}
'' '