Я создаю API на микроконтроллере Wi-Fi.Веб-сайт выполняет запросы, и микроконтроллер (ESP8266) должен отвечать данными JSON.
У меня возникают странные проблемы с ответами HTTP:
ESP8266 отправляет домашнюю страницу без проблем с этим ответом HTTP: client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html; charset=UTF-8");
client.println("");
client.println("<!DOCTYPE HTML>");
Проблема возникает с этим кодом:
// read incoming request
String request = client.readStringUntil('\r\n');
client.flush();
// read the request
if (request.length() > 15) {
// check if request is an api call and not a favicon call
if (request.indexOf("favicon") < 0) {
rqlength = request.length() - 15 ;
request = request.substring(5);
rqs = "";
rq["title"] = "request";
rq["date"] = request.substring(0,8);
rq["hour"] = String(timeClient.getHours());
serializeJson(rq, rqs);
// check if request is an api call and not a favicon request
// send the request to arduino
Serial.print(rqs);
// wait the response from the arduino
while (Serial.available()) {
incdata = Serial.readString();
cansend = true;
}
// send the arduino JSON data to the client : The issue seems to come from here ?
client.println(F("HTTP/1.1 200 OK"));
client.println(F("Content-Type: application/json"));
client.println(F("Connection: close"));
client.println("");
client.print(incdata);
}
Кажется, проблемапроизойдет из-за кеша или http заголовка?Но я не могу найти решение.Есть идеи?