w5100+arduino и GET запросы с несколькими параметрами
- Войдите на сайт для отправки комментариев
Втр, 09/01/2018 - 17:33
Проблема: если отправляю заведомо известные параметры(Пример: 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);
}
}
а в чем вопрос?
Вопрос в том, как отправлять значения переменных в запросе
Вопрос в чём? У вас в скетче валидный запрос 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); } }Заодно убрал строки во флеш.