#include <sstream>
#include <string>
#define BUFFER_SIZE 256
const
char
g_szHeader[] =
"HTTP/1.1 200 OK\r\n"
"Connection: Keey-Live\r\n"
"Content-Type: text/xml\r\n\r\n"
;
bool
HttpRespHeaderPrase(
const
std::string& strHeader)
{
if
( strHeader.empty() )
{
return
false
;
}
char
szLineBuf[BUFFER_SIZE] = {0};
std::stringstream ssHeader(strHeader.c_str());
ssHeader.getline(szLineBuf,
sizeof
(szLineBuf),
'\r'
);
char
szHttpVersion[BUFFER_SIZE] = {0};
sscanf
(szLineBuf,
"HTTP/%[^ ]"
, szHttpVersion);
strtok
(szLineBuf,
" "
);
int
iStatusCode =
atoi
(
strtok
(NULL,
" "
));
std::string strParamName;
std::string strParamValue;
for
(;;)
{
ssHeader.getline(szLineBuf,
sizeof
(szLineBuf),
'\r'
);
size_t
count =
strspn
(szLineBuf,
"\r\n "
);
char
* start = szLineBuf + count;
if
( 0 ==
strlen
(start) )
{
break
;
}
char
* p =
strchr
(start,
':'
);
if
( p - start > 0 )
{
strParamName.assign(start, p - start);
}
else
{
return
false
;
}
count =
strspn
(p,
": "
);
strParamValue.assign(p + count);
}
return
true
;
}
int
main(
int
argc,
char
* argv[])
{
HttpRespHeaderPrase(std::string(g_szHeader));
return
0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步