2014-03-29 35 views
0

我在套接字上收到HTTP请求。如何在C中分割HTTP头?

我想分割标头和内容的HTTP请求。

所以,我试过这个来源。

//p is char* type, response too 
p = strtok(response, "\r\n\r\n"); 
while(NULL != p){ 
    printf("%s\n", p); 
    p = strtok(NULL, "\r\n\r\n"); 
} 

strtok()通过NULL取代"\r\n"了。

我想只替换"\r\n\r\n"

我该怎么办?

+1

只是做手工没什么大不了的。 –

回答

3

尝试strstr

//p1 is char* type, response and p2 too 
p1 = response; 
p2 = strstr(response, "\r\n\r\n"); 
while(NULL != p2){ 
    printf("%.*s\n", p2 - p1, p1); 
    p1 = p2; 
    p2 = strstr(p2 + 1, "\r\n\r\n"); 
} 
+1

..并在同一网站上,你可以阅读[为什么你使用'strtok'错误](http://pubs.opengroup.org/onlinepubs/9699919799/functions/strtok.html) – usr2564301

+0

我想返回标题或内容也是。如何返回标题或内容? – Prokuma

+0

将某些东西返回给调用者,将其复制到目标地址(确保它有足够的空间);或分配内存并返回(确保在不再需要时释放它)。 – pmg