From c2cc2e5c759863229ce9d48d014243f6e7260353 Mon Sep 17 00:00:00 2001 From: cflip Date: Thu, 7 Jul 2022 13:09:11 -0600 Subject: Create an HttpRequest class --- src/HttpRequest.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/HttpRequest.cpp (limited to 'src/HttpRequest.cpp') diff --git a/src/HttpRequest.cpp b/src/HttpRequest.cpp new file mode 100644 index 0000000..351c971 --- /dev/null +++ b/src/HttpRequest.cpp @@ -0,0 +1,24 @@ +#include "HttpRequest.h" + +#include + +HttpRequest::HttpRequest(const std::string& request_string) +{ + size_t pos = 0; + std::string s = request_string; + std::string line; + while ((pos = s.find("\r\n")) != std::string::npos) { + line = s.substr(0, pos); + + // If the line contains a colon, we assume it's a header. + // TODO: This may not always be the case. + size_t delim_pos = 0; + if ((delim_pos = line.find(":")) != std::string::npos) { + std::string header_key = s.substr(0, delim_pos); + std::string header_value = s.substr(delim_pos + 2, s.find("\r\n") - delim_pos - 2); + m_headers[header_key] = header_value; + //std::cout << "1?: {" << header_maybe << "}, 2?: {" << value_maybe << "}\n"; + } + s.erase(0, pos + 2); + } +} -- cgit v1.2.3