如何在C中拆分HTTP头?

时间:2014-03-29 14:08:56

标签: c strtok string.h

我在socket接收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()也将"\r\n"替换为NULL

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

我该怎么办?

1 个答案:

答案 0 :(得分: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");
}