Разбор GET запроса

Ответить
smol
Рядовой
Сообщения: 62
Зарегистрирован: 16.11.2017{, 18:25}
Репутация: 0

Разбор GET запроса

#1

Сообщение smol » 03.10.2018{, 17:29}

Привет Всем!

Появилась необходимость принят переменную в контроллер в виде GET запроса
http://server/?переменная=значение
Возможно ли это?

Anydy

Разбор GET запроса

#2

Сообщение Anydy » 03.10.2018{, 18:45}

Конечно, посмотрите как идет отправка на различные сервисы....например народмон.ру thingspeak.com

smol
Рядовой
Сообщения: 62
Зарегистрирован: 16.11.2017{, 18:25}
Репутация: 0

Разбор GET запроса

#3

Сообщение smol » 04.10.2018{, 14:48}

отправлять без проблем, а вот принять его ардуинкой?
http://arduino_IP/?переменная=значение

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Разбор GET запроса

#4

Сообщение Sancho » 04.10.2018{, 14:57}

smol, нашёл для Вас, может поможет, сам не пробовал...
СпойлерПоказать

Код: Выделить всё

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();
          }
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

smol
Рядовой
Сообщения: 62
Зарегистрирован: 16.11.2017{, 18:25}
Репутация: 0

Разбор GET запроса

#5

Сообщение smol » 04.10.2018{, 16:12}

Я делал такое, думал может блоки у кого есть для такой фишки.

А вот как я делал без FLPROG
СпойлерПоказать

Код: Выделить всё

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();                                                                               
  }
}

Ответить

Вернуться в «Помогите, а то я "нимагу"»