http http-headers arduino http-post http-error

Encabezados HTTP para la codificación POST fragmentada-Error 411



http-headers arduino (1)

Estoy enviando datos a un servidor con un Arduino que requiere la construcción de un HTML POST línea por línea . No necesariamente conozco Content-Length a-priori, así que estoy usando la codificación "fragmentada".

Cuando probé esta publicación de ejemplo de Wikipedia con la opción "Transferir codificación" como se especifica en rfc2616

client.println("POST /myurl HTTP/1.1"); client.println("Host: 12.345.679.999"); // replaced with the test server''s IP client.println("User-Agent: Arduino/1.0"); client.println("Transfer-Encoding: chunked"); client.println(); client.println("4"); client.println("test"); client.println("0"); client.println();

o, con caracteres de escape explícitos:

client.print("4/r/ntest/r/n0/r/n/r/n");

Recibo el error de mi servidor:

HTTP/1.1 411 Length Required A request of the requested method POST requires a valid Content-length. Server: Apache/2.2.22 (Ubuntu)

Sin embargo, la codificación "fragmentada" no debe requerir un campo de encabezado de longitud de contenido, consulte 4.4 - Longitud del mensaje en rfc2616

¿Me estoy perdiendo un campo? ¿Por qué no funciona esta llamada?

Para el registro, la codificación no fragmentada funciona:

if(client.connect(server, 80)){ String PostData = "test"; Serial.println("POST /myurl HTTP/1.1"); client.println("Host: 12.345.679.999"); // replaced with the test server''s IP Serial.println("User-Agent: Arduino/1.0"); Serial.print("Content-Length: "); Serial.println(PostData.length()); Serial.println(); Serial.println(PostData); }

ACTUALIZAR

Desde apache2 error.log: "Prohibida la codificación de transferencia fragmentada"


Después de encontrar

chunked Transfer-Encoding forbidden

en mi registro de Apache2 llegué a la conclusión de que el error no estaba en el POST que estaba haciendo.

Descubrí que modwsgi (la capa intermedia entre apache y django) no habilita la codificación de transferencia fragmentada de forma predeterminada. En el pasado, Chunked no era compatible en absoluto

Refiriéndome al registro de cambios en la nueva versión de modwsgi , encontré que al escribir

WSGIChunkedRequest On

en mi archivo httpd.conf apache se permiten solicitudes fragmentadas (no hay más error 411)