I am trying to parse the following HTTP response:
HTTP/1.1 200 OK Date: Tue, 06 Dec 2011 11:15:21 GMT Server: Apache/2.2.14 (Ubuntu) X-Powered-By: PHP/5.3.2-1ubuntu4.9 Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 48 Content-Type: text/html ( Ν± I O H 4 @ B $ S
I want to extract "48" and binary content.
Here is what I tried sofar:
//char* str contains the response char * pch; printf ("Splitting response into tokens:\n"); pch = strtok (str,"\r\n"); while (pch != NULL) { printf ("%s\n",pch); pch = strtok (NULL, "\r\n"); }
But I'm stuck right now ... Any help is greatly appreciated.
edit:
Here is what I did sofar:
char* pch; char* pch2; pch=strstr(buf,"Content-Length:"); pch2=strstr(pch,"\r\n");
How can I get a bit between these two pointers?
Edit: solution:
char* pch; char* pch2; pch=strstr(buf,"Content-Length:"); int i=0; char contLen[20]; for(i=0;i<20;i++){ char next=pch[strlen("Content-Length:")+i]; if(next=='\r' || next=='\n'){ break; } contLen[i]=next; } printf("%d\n",atoi(contLen));
Eamorr
source share