2014-03-29 37 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