Я использую Platformio с Visual Code, чтобы сделать несколько тестовых проектов ESP32. Я новичок в этом, поэтому мои знания по этому вопросу довольно скудны ^. ^
Моя проблема в том, что из того, что я знаю (возможно, ошибочно), Twilio API может возвращать (с GET) тип Json , но когда это POST, это должен быть только тип XML.
Я использую ESP32 с этим кодом:
#include <Arduino.h>
#include <HTTPClient.h>
#include <WiFi.h>
#include <ArduinoJson.h>
void SetupWifi();
void Callback(char *, byte*, unsigned int);
void Reconnect();
const char* password = "Testing4312";
const char* SSID = "T.T";
HTTPClient http;
WiFiClient wifiClient;
StaticJsonDocument<200> doc;
unsigned long lastMsg = 0;
char msg[50];
int value = 0;
char jsonOutput[256];
void setup()
{
pinMode(BUILTIN_LED, OUTPUT);
Serial.begin(9600);
delay(20);
SetupWifi();
}
void loop()
{
if(WiFi.status()== WL_CONNECTED){ //Check WiFi connection status
http.begin("https://timberwolf-mastiff-9776.twil.io/demo-reply");
http.addHeader("Content-Type", "application/json");
const size_t CAPACITY = JSON_OBJECT_SIZE(1);
StaticJsonDocument<CAPACITY> doc;
JsonObject object = doc.to<JsonObject>();
object["from"] = "whatsapp:+XXXXXXXXX";
object["body"] = "Testing";
object["to"] = "whatsapp:+XXXXXXXXXX";
serializeJson(doc, jsonOutput);
int codigo_respuesta = http.POST(String(jsonOutput));
if(codigo_respuesta>0){
Serial.println("Código HTTP ► " + String(codigo_respuesta)); //Print return code
if(codigo_respuesta == 200){
String cuerpo_respuesta = http.getString();
Serial.println("El servidor2 respondió ▼ ");
Serial.println(cuerpo_respuesta);
}
}else{
Serial.print("Error enviando POST, código: ");
Serial.println(codigo_respuesta);
}
http.end(); //free
}else{
Serial.println("Error en la conexión WIFI");
}
delay(2000);
}
void SetupWifi()
{
Serial.println("\nConectando a -> " + String(SSID) + "\n\n");
//Start Connection
WiFi.begin(SSID, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(250);
Serial.print(".");
}
Serial.println("\n\nConexion Exitosa!!!\n\n");
}
Я искал крошечную XML библиотеку, но я не знаю, сработает ли это, потому что все, что я вижу, это библиотека API Twilio, которую я не могу использовать с моим ESP32 (или, может быть, да, я не уверен). Есть ли другой способ сделать это? Я думал как-нибудь реализовать библиотеку C ++ Curl для ESP32 и попробовать запрос curl, но кажется таким сложным.
Вот и все, 1 неделя, что я застрял с этой проблемой xD .