http - por - peticiones get arduino
Haciendo una solicitud HTTP POST usando Arduino (2)
Enviar paquetes HTTP hechos a mano puede ser un poco complicado porque son extremadamente exigentes con el formato utilizado. Recomiendo leer el protocolo HTTP si tiene tiempo porque explica la sintaxis y los campos requeridos. En particular, debe consultar la sección 5 "Solicitud".
Con respecto a su código, debe especificar la versión HTTP después del POST URI y creo que también debe especificar el encabezado "Host". Además de eso, debe asegurarse de tener un salto de línea de retorno de carro (CRLF) al final de cada línea. Por lo tanto, su paquete debe verse algo como:
POST /Api/AddParking/3 HTTP/1.1
Host: www.yourhost.com
Estoy intentando publicar información en un API en un proyecto web que he creado y hospedado. No estoy seguro de cuál es el formato exacto para la solicitud HTTP POST. Cada vez que lo intento, obtengo errores HTTP 400 con el mensaje de que hay "un verbo no válido".
Código de muestra:
byte server[] = {"our IP"}
..
..
client(server, 80)
..
..
client.println("POST /Api/AddParking/3");
Se conecta a la dirección IP suministrada sin ningún problema, pero todo lo que recibo en el código de error HTTP 400 mencionado anteriormente. No estoy seguro de si debía incluir una versión HTTP después de mi POST o Content-Length o cualquier otra información .
La pregunta original ya está respondida, pero solo como referencia para las personas que pasan a través de Google; Aquí hay un ejemplo más completo de cómo publicar datos en un servidor web con un Arduino:
IPAddress server(10,0,0,138);
String PostData = "someDataToPost";
if (client.connect(server, 80)) {
client.println("POST /Api/AddParking/3 HTTP/1.1");
client.println("Host: 10.0.0.138");
client.println("User-Agent: Arduino/1.0");
client.println("Connection: close");
client.print("Content-Length: ");
client.println(PostData.length());
client.println();
client.println(PostData);
}