Update HttpSession.cpp

This commit is contained in:
夏楚 2023-12-23 20:51:45 +08:00 committed by GitHub
parent 4d11399d48
commit ddc0391d07
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 15 deletions

View File

@ -124,28 +124,17 @@ ssize_t HttpSession::onRecvHeader(const char *header, size_t len) {
}
//// body size明确指定且小于最大值的情况 ////
auto body = std::make_shared<std::string>();
// 预留一定的内存buffer防止频繁的内存拷贝
body->reserve(content_len);
_on_recv_body = [this, body, content_len, it](const char *data, size_t len) mutable {
body->append(data, len);
if (body->size() < content_len) {
// 未收满数据
return true;
}
_on_recv_body = [this, it](const char *data, size_t len) mutable {
// 收集body完毕
_parser.setContent(std::move(*body));
_parser.setContent(std::string(data, lem));
(this->*(it->second))();
_parser.clear();
// 后续是header
//setContentLen(0);
// _on_recv_body置空
return false;
};
// 声明后续都是bodyHttp body在本对象缓冲不通过HttpRequestSplitter保存
// 声明body长度通过HttpRequestSplitter缓存然后一次性回调到_on_recv_body
return content_len;
}