c - 如何在 C 中拆分 HTTP header ?

标签 c strtok string.h

我在套接字上接收到 HTTP 请求。

我想在 header 和内容处拆分 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"

我该怎么办?

最佳答案

尝试 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");
}

关于c - 如何在 C 中拆分 HTTP header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22732119/

相关文章:

c++ - 可以在数据报套接字中用于发送和接收吗?

c - Windows 中文件夹及其子文件夹中所有文件的列表

c - 标记外部文件

c - 使用 C 提取 Wiki 链接

c - 使用 C 程序将华氏度转换为摄氏度时打印垃圾值

C++ Tokenizer 复杂性与 strtok_r

c - strtok 和 fgets 的奇怪数组行为

c - memcpy 反相数据,C语言

c - 尝试从文本文件中读取两个数字

c - 为什么 TAILQ_INSERT_* 宏需要将条目绑定(bind)到变量?