Enviar comandos REST PUT desde ESP8266

2

Estoy interesado en usar un ESP8266 para alimentar una interfaz física para un dispositivo conectado a la red. El dispositivo en sí admite comandos REST, pero no estoy seguro de cómo enviar solicitudes PUT desde el ESP8266. En este momento, puedo usar la interfaz de depuración web del dispositivo para enviar comandos REST, pero no estoy seguro de cómo traducirlo al ESP8266.

Al usar un navegador web, puedo obtener información al buscar en

<DEVICE_IP>/API/<USER_ID>/<RESOURCE>

pero solo puedo obtener el estado actual de ese recurso navegando a esa URL. ¿Cómo enviaría una solicitud PUT?

    
pregunta Hari Ganti

1 respuesta

1

Después de leer un breve tutorial sobre el módulo ESP8266 usando la API de Arduino, encontré que reemplazar la cadena "GET" con una cadena "PUT" con el siguiente comando. En concreto, para enviar el comando

{"on": true}

al recurso en

/state

El ESP8266 se ejecutaría:

String command = "{\"on\": true}";
client.print(String("PUT ") + "/state" + "HTTP/1.1 \r\n" + 
             "Host: " + hosturl + "\r\n" +
             "Content-Length: " + command.length() + "\r\n" +
             "Content-Type: text/plain;charset=UTF-8\r\n\r\n" +
             command + "\r\n" +
             "Connection: close\r\n\r\n");

Honestamente, tengo muy poca idea de por qué "Host", "Content-Length" o "Content-Type" (o incluso "Connection") están ahí, pero esto no es un MWE, solo un WE.

    
respondido por el Hari Ganti

Lea otras preguntas en las etiquetas