[C++/HTTP] Lectura de buffer (string)

Iniciado por kiriost, 29 Julio 2011, 20:54 PM

0 Miembros y 1 Visitante están viendo este tema.

kiriost

Hola amigos.

Recurro a ustedes para que me ayuden. El problema es el siguiente:

He programado, en C (bajo Linux), una aplicacioón que se conecta, mediante Sockets, a un servidor Web y le envía una petición GET (protocolo HTTP) para que me pase el contenido de un archivo y yo lo guardo en un buffer.
Mi problema es que no se cómo sacar de ese buffer la respuesta del servidor http ("HTTP/1.1 OK\nAccept: [...]") para que quede solo el contenido del archivo.

La parte del código que envía la solicitud con GET y luego guarda la respuesta en un buffer es la sgte.:

//...
char buffer[1452];
char data[] = "GET /pag.html HTTP/1.1\n"
                     "Host: www.paginaweb.com\n"
                     "User-Agent: Mozilla/4.0\n\n";

send(sock, data, strlen(data), 0);
recv(sock, buffer, 1452, 0);

printf("%s\n", buffer);


Como ya expliqué, envía una petición HTTP y el servidor le envía el contenido del archivo que requirió (pag.html) pero el problema es que en buffer junto con el contenido del archivo se guarda también la respuesta HTTP porque lo envía todo junto:

Por ejemplo: buffer:
HTTP/1.1 OK
Content-Length: 145233
Accept: arch...
Content-Type: ....

Aquí empiezar el contenido del archivo...bla bla bla
ASDadasdasdasd


Quisiera saber qué funciones podría utilizar para sacar de buffer la respuesta HTTP y que me quede solo el contenido del archivo.

Gracias de antemano!
http://www.godsys.com.ar > Programación. Hacking y Cracking. Sistemas. Desarrollo Web.
Java, C/C++, PHP, Python, Perl, HTML, Game-Hacking, Defacing, Desarrollo Web, GNU/Linux, y más

Arkangel_0x7C5

las cabeceras http siempre terminan por un doble \n

Con lo que solo tendrías que buscarlo y empezar a leer a partir de hay
Mira las funciones de manejo de cadenas

Saludos