Bonjour à tous,
Petit problème avec mon ESP32 qui fait le rôle d'un serveur HTTP. J'ai une requête qui doit me permettre d'enregistrer un post WordPress sur mon Arduino pour pouvoir la renvoyer après sauf que j'ai un problème sur la reception des données.
Voici un exemple de donnée que j'envoie :
{
"ID": 3543,
"post_author": "2",
"post_date": "2021-05-20 16:02:09",
"post_date_gmt": "2021-05-20 14:02:09",
"post_content": "",
"post_title": "Choosing and implementing a mobile inspection management app in 5 steps",
"post_excerpt": "",
"post_status": "publish",
"comment_status": "open",
"ping_status": "open",
"post_password": "",
"post_name": "inspection-app-choice-implementation",
"to_ping": "",
"pinged": "",
"post_modified": "2021-05-20 16:16:22",
"post_modified_gmt": "2021-05-20 14:16:22",
"post_content_filtered": "",
"post_parent": 0,
"guid": "http://localhost/?p=3543",
"menu_order": 0,
"post_type": "post",
"post_mime_type": "",
"comment_count": "0",
"filter": "raw"
}
Comme vous pouvez le voir c'est du JSON, qui est envoyé depuis mon site WordPress.
Voici mon code C++ :
server.on(
"/add_new_post", HTTP_POST, [](AsyncWebServerRequest *request) {}, NULL, [](AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total)
{
new_post = true;
String response_request;
response_request += String((char *)data);
postTest = response_request;
Serial.println(postTest);
// String input;
// DynamicJsonDocument doc(100000);
// DeserializationError error = deserializeJson(doc, postTest.substring(0, postTest.indexOf("}")));
// if (error)
// {
// Serial.print(F("deserializeJson() failed: "));
// Serial.println(error.f_str());
// return;
// }
// int ID = doc["ID"]; // 3543
// const char *post_author = doc["post_author"]; // "2"
// const char *post_date = doc["post_date"]; // "2021-05-20 16:02:09"
// const char *post_date_gmt = doc["post_date_gmt"]; // "2021-05-20 14:02:09"
// const char *post_content = doc["post_content"]; // "[fusion_builder_container type=\"flex\" ...
// const char *post_title = doc["post_title"]; // "Choosing and implementing a mobile inspection management ...
// const char *post_excerpt = doc["post_excerpt"]; // nullptr
// const char *post_status = doc["post_status"]; // "publish"
// const char *comment_status = doc["comment_status"]; // "open"
// const char *ping_status = doc["ping_status"]; // "open"
// const char *post_password = doc["post_password"]; // nullptr
// const char *post_name = doc["post_name"]; // "inspection-app-choice-implementation"
// const char *to_ping = doc["to_ping"]; // nullptr
// const char *pinged = doc["pinged"]; // nullptr
// const char *post_modified = doc["post_modified"]; // "2021-05-20 16:16:22"
// const char *post_modified_gmt = doc["post_modified_gmt"]; // "2021-05-20 14:16:22"
// const char *post_content_filtered = doc["post_content_filtered"]; // nullptr
// int post_parent = doc["post_parent"]; // 0
// const char *guid = doc["guid"]; // "http://localhost/?p=3543"
// int menu_order = doc["menu_order"]; // 0
// const char *post_type = doc["post_type"]; // "post"
// const char *post_mime_type = doc["post_mime_type"]; // nullptr
// const char *comment_count = doc["comment_count"]; // "0"
// const char *filter = doc["filter"]; // "raw"
// Serial.println(ID);
request->send(200, "text/plain", String(1));
Serial.println("ajout de post");
});
Le problème c'est que ma ligne "Serial.println(postTest);" me renvoie :#debut[object Object]fin:#�␎��I␁��|ֽuᆳ�xV����␆�?4␒��␘
Le :#debut et fin:#, c'est moi qui l'ai rajouté car ça me permet de pouvoir enlever ces caractères bizarre après mes données. Et donc mon problème est ce [object Object]
Merci