【问题标题】:How to split HTTP header in C?如何在 C 中拆分 HTTP 标头?
【发布时间】:2014-03-29 14:08:56
【问题描述】:

我在套接字上收到 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"

我应该怎么做?

【问题讨论】:

  • 手动操作没什么大不了的。

标签: c strtok string.h


【解决方案1】:

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

【讨论】:

  • .. 在同一个站点上,您可以阅读 why you are using strtok wrong
  • 我也想返回 Header 或 Content。怎样才能返回Header或者内容?
  • 向调用者返回一些东西,复制到目标地址(确保它有足够的空间);或分配内存并返回(确保在不再需要时释放它)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-26
  • 1970-01-01
  • 2015-09-16
  • 2017-08-01
  • 1970-01-01
  • 2011-07-02
  • 2021-02-10
相关资源
最近更新 更多