Модуль ESP-01 подключен к Ардуине. Часть кода на запрос и попытка парсить полученные данные:
cmd = "GET /data/2.5/weather?id=" + String(city) + "&appid=" + String(api);
cmd += " HTTP/1.0\r\nHost: api.openweathermap.org\r\n\r\n";
dbgSerial.print("AT+CIPSEND=");
dbgSerial.println(cmd.length());
if(dbgSerial.find(">")){
Serial.print(">");
}
else
{
dbgSerial.println("AT+CIPCLOSE");
Serial.println("connection timeout");
delay(1000);
return;
}
Serial.println(cmd);
dbgSerial.println(cmd);
delay(3000);
if(dbgSerial.find("SEND OK"))
{
Serial.println("Request send");
delay(5000);
}
Serial.println("Begin JSON");
while(dbgSerial.available()){ //Если получили ответ от сервера...
line = dbgSerial.readStringUntil('\r'); //Добавляем полученные данные в строку line
}
Serial.println(line);
DeserializationError error = deserializeJson(root, line);
получаю ответ от сервера
+IPD,784:HTTP/1.1
784 размер полученных данных. Где они? Говорят они во второй строке. Как причитать вторую строку?
cmd = "GET /data/2.5/weather?id=" + String(city) + "&appid=" + String(api);
cmd += " HTTP/1.0\r\nHost: api.openweathermap.org\r\n\r\n";
dbgSerial.print("AT+CIPSEND=");
dbgSerial.println(cmd.length());
if(dbgSerial.find(">")){
Serial.print(">");
}
else
{
dbgSerial.println("AT+CIPCLOSE");
Serial.println("connection timeout");
delay(1000);
return;
}
Serial.println(cmd);
dbgSerial.println(cmd);
delay(3000);
if(dbgSerial.find("SEND OK"))
{
Serial.println("Request send");
delay(5000);
}
Serial.println("Begin JSON");
while(dbgSerial.available()){ //Если получили ответ от сервера...
line = dbgSerial.readStringUntil('\r'); //Добавляем полученные данные в строку line
}
Serial.println(line);
DeserializationError error = deserializeJson(root, line);
получаю ответ от сервера
+IPD,784:HTTP/1.1
784 размер полученных данных. Где они? Говорят они во второй строке. Как причитать вторую строку?