Refactor format read to handle large payload
This commit is contained in:
parent
a5f7f0f8a4
commit
e445e7649c
@ -1022,49 +1022,52 @@ void WebServerHandler::webHandleConfigFormatRead() {
|
|||||||
LOG_PERF_START("webserver-api-config-format-read");
|
LOG_PERF_START("webserver-api-config-format-read");
|
||||||
Log.notice(F("WEB : webServer callback for /api/config/formula(get)." CR));
|
Log.notice(F("WEB : webServer callback for /api/config/formula(get)." CR));
|
||||||
|
|
||||||
DynamicJsonDocument doc(5000);
|
String out;
|
||||||
|
out.reserve(7000);
|
||||||
doc[PARAM_ID] = myConfig.getID();
|
out += "{\"id\":\"" + String(myConfig.getID()) + "\",";
|
||||||
|
|
||||||
String s = readFile(TPL_FNAME_HTTP1);
|
String s = readFile(TPL_FNAME_HTTP1);
|
||||||
|
out += "\"" + String(PARAM_FORMAT_HTTP1) + "\":\"";
|
||||||
if (s.length())
|
if (s.length())
|
||||||
doc[PARAM_FORMAT_HTTP1] = urlencode(s);
|
out += urlencode(s);
|
||||||
else
|
else
|
||||||
doc[PARAM_FORMAT_HTTP1] = urlencode(String(&iSpindleFormat[0]));
|
out += urlencode(String(&iSpindleFormat[0]));
|
||||||
|
|
||||||
s = readFile(TPL_FNAME_HTTP2);
|
s = readFile(TPL_FNAME_HTTP2);
|
||||||
|
out += "\",\"" + String(PARAM_FORMAT_HTTP2) + "\":\"";
|
||||||
if (s.length())
|
if (s.length())
|
||||||
doc[PARAM_FORMAT_HTTP2] = urlencode(s);
|
out += urlencode(s);
|
||||||
else
|
else
|
||||||
doc[PARAM_FORMAT_HTTP2] = urlencode(String(&iSpindleFormat[0]));
|
out += urlencode(String(&iSpindleFormat[0]));
|
||||||
|
|
||||||
s = readFile(TPL_FNAME_HTTP3);
|
s = readFile(TPL_FNAME_HTTP3);
|
||||||
|
out += "\",\"" + String(PARAM_FORMAT_HTTP3) + "\":\"";
|
||||||
if (s.length())
|
if (s.length())
|
||||||
doc[PARAM_FORMAT_HTTP3] = urlencode(s);
|
out += urlencode(s);
|
||||||
else
|
else
|
||||||
doc[PARAM_FORMAT_HTTP3] = urlencode(String(&iHttpGetFormat[0]));
|
out += urlencode(String(&iHttpGetFormat[0]));
|
||||||
|
|
||||||
s = readFile(TPL_FNAME_INFLUXDB);
|
s = readFile(TPL_FNAME_INFLUXDB);
|
||||||
|
out += "\",\"" + String(PARAM_FORMAT_INFLUXDB) + "\":\"";
|
||||||
if (s.length())
|
if (s.length())
|
||||||
doc[PARAM_FORMAT_INFLUXDB] = urlencode(s);
|
out += urlencode(s);
|
||||||
else
|
else
|
||||||
doc[PARAM_FORMAT_INFLUXDB] = urlencode(String(&influxDbFormat[0]));
|
out += urlencode(String(&influxDbFormat[0]));
|
||||||
|
|
||||||
s = readFile(TPL_FNAME_MQTT);
|
s = readFile(TPL_FNAME_MQTT);
|
||||||
|
out += "\",\"" + String(PARAM_FORMAT_MQTT) + "\":\"";
|
||||||
if (s.length())
|
if (s.length())
|
||||||
doc[PARAM_FORMAT_MQTT] = urlencode(s);
|
out += urlencode(s);
|
||||||
else
|
else
|
||||||
doc[PARAM_FORMAT_MQTT] = urlencode(String(&mqttFormat[0]));
|
out += urlencode(String(&mqttFormat[0]));
|
||||||
|
|
||||||
|
out += "\"}";
|
||||||
|
|
||||||
#if LOG_LEVEL == 6 && !defined(WEB_DISABLE_LOGGING)
|
#if LOG_LEVEL == 6 && !defined(WEB_DISABLE_LOGGING)
|
||||||
serializeJson(doc, Serial);
|
Serial.print(out.c_str());
|
||||||
Serial.print(CR);
|
Serial.print(CR);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
String out;
|
|
||||||
out.reserve(3000);
|
|
||||||
serializeJson(doc, out);
|
|
||||||
doc.clear();
|
|
||||||
_server->send(200, "application/json", out.c_str());
|
_server->send(200, "application/json", out.c_str());
|
||||||
LOG_PERF_STOP("webserver-api-config-format-read");
|
LOG_PERF_STOP("webserver-api-config-format-read");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user