Привет Всем!
Появилась необходимость принят переменную в контроллер в виде GET запроса
http://server/?переменная=значение
Возможно ли это?
Код: Выделить всё
String currentLine = "";
client.connect(server, 80);
delay (50);
if (client.connected())
{
while (client.available())
{
char inChar = client.read();
currentLine += inChar;
if (currentLine == "1")
{
// выполнить ....
}
if(currentLine == "0")
{
// выполнить ....
}
}
client.stop();
}
Код: Выделить всё
void loop()
{
EthernetClient client = server.available();
if (client)
{
// HTTP запрос заканчивается пустой строкой
boolean currentLineIsBlank = true;
boolean sentHeader = false;
while (client.connected())
{
if (client.available())
{
char c = client.read();
if (receiving && c == ' ') receiving = false;
if (c == '?') receiving = true; // Поиск аргументов переданных GET-запросом(аргументы после символа "?")
// Обработка GET-запроса
if (receiving)
{
// Если полученн аргумент 'L' - то управляем светодиодом
if (c == 'L')
{
pin = client.parseInt();
digitalWrite(pin, !digitalRead(pin));
break;
}
// Если получен аргумент 'S' - то управляем динамиком
else if (c == 'S')
{
}
}
// Отправляем заголовок ответа и HTML-код
if (!sentHeader)
{
// Отправляем стандартный заголовок ответа HTTP
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html\n");
client.println("Refresh: 5"); // refresh the page automatically every 5 sec
// Красная кнопка переключения
client.println("<form action='' method='get'>");
client.println("<input type='hidden' name='L' value='7' />");
client.println("<input type='submit' value='Toggle Red' />");
client.println("</form>");
// Зеленая кнопка переключения
client.println("<form action='' method='get'>");
client.println("<input type='hidden' name='L' value='6' />");
client.println("<input type='submit' value='Toggle Gre' />");
client.println("</form>");
// Синяя кнопка переключения
client.println("<form action='' method='get'>");
client.println("<input type='hidden' name='L' value='5' />");
client.println("<input type='submit' value='Toggle Blu' />");
client.println("</form>");
sentHeader = true;
}
if (c == '\n' && currentLineIsBlank) break;
if (c == '\n')
{
currentLineIsBlank = true;
}
else if (c != '\r')
{
currentLineIsBlank = false;
}
}
}
delay(5);
client.stop();
}
}