diff options
Diffstat (limited to 'src/HttpRequest.cpp')
-rw-r--r-- | src/HttpRequest.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
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 <iostream> + +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); + } +} |