w5100+arduino и GET запросы с несколькими параметрами

oleerm
Offline
Зарегистрирован: 09.01.2018

Проблема: если отправляю заведомо известные параметры(Пример: GET /parser.php?id=1&temp=24) получаю ответ 200 и данные в mysql изменились, если же отправляю многострочный запрос, как все рекомендуют получаю 400 ответ или не получаю ничего.

#include <SPI.h>
#include <Ethernet.h>


byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
int id = 1;
IPAddress server(192,168,0,103);  // numeric IP for Google (no DNS)

IPAddress ip(192, 168, 0, 177);

EthernetClient client;

void setup() {
  Serial.begin(9600);
  while (!Serial) {
    ; 
  }

  Ethernet.begin(mac, ip);
  
  delay(1000);
  Serial.println("connecting...");

  if (client.connect(server, 80)) {
    Serial.println("connected");
    // Make a HTTP request:
    client.println("GET /parser.php?id=id&temp=57 HTTP/1.1");
    client.println("Host: 192.168.0.103");
    client.println("Connection: close");
    client.println();
    client.println();
  } else {

    Serial.println("connection failed");
  }
}

void loop() {
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();

    while (true);
  }
}

 

b707
Offline
Зарегистрирован: 26.05.2017

а в чем вопрос?

oleerm
Offline
Зарегистрирован: 09.01.2018

Вопрос в том, как отправлять значения переменных в запросе

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Вопрос в чём? У вас в скетче валидный запрос GET отправляется, проблема в чём? В том, чтобы сформировать запрос ручками?

#include <SPI.h>
#include <Ethernet.h>


byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
int id = 1;
IPAddress server(192,168,0,103);  // numeric IP for Google (no DNS)

IPAddress ip(192, 168, 0, 177);

EthernetClient client;

void setup() {
  Serial.begin(9600);
  while (!Serial) {
    ; 
  }

  Ethernet.begin(mac, ip);
  
  delay(1000);
  Serial.println(F("connecting..."));

  if (client.connect(server, 80)) {
    Serial.println("connected");
    // Make a HTTP request:
    client.print(F("GET /parser.php?id="));
    cleint.print(1234);
    client.print(F("&temp="));
    client.print(57);
    client.println(F(" HTTP/1.1"));
    client.println(F("Host: 192.168.0.103"));
    client.println(F("Connection: close"));
    client.println();
    client.println();
  } else {

    Serial.println(F("connection failed"));
  }
}

void loop() {
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  if (!client.connected()) {
    Serial.println();
    Serial.println(F("disconnecting."));
    client.stop();

    while (true);
  }
}

Заодно убрал строки во флеш.