He encontrado un nuevo interés en construir un servidor web pequeño y eficiente en C y he tenido problemas para analizar los métodos POST desde el encabezado HTTP. ¿Alguien tiene algún consejo sobre cómo manejar la recuperación de los pares de nombre/valor de los datos "publicados"?Analizando encabezados HTTP
POST /test HTTP/1.1
Host: test-domain.com:7017
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://test-domain.com:7017/index.html
Cookie: __utma=43166241.217413299.1220726314.1221171690.1221200181.16; __utmz=43166241.1220726314.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 25
field1=asfd&field2=a3f3f3
// ^-this
No veo una forma tangible de recuperar la línea de fondo como un todo y asegurar que funcione siempre. No soy fanático de la codificación en nada.
Ah, gracias. Noté que había un espacio extra justo antes de la cadena de pares de nombre/valor, pero no uní dos y dos. –
@rofly: no calcule dos y dos, solo lea el estándar (RFC 2616). Está en la sección 4.1. – bortzmeyer
Solo tenga en cuenta que hay clientes no conformes que usan el final de encabezados "interesante", como '\ n \ n' o '\ n \ r \ n'. – Wade