summaryrefslogtreecommitdiff
path: root/src/HttpRequest.cpp
diff options
context:
space:
mode:
authorcflip <cflip@cflip.net>2022-07-07 13:09:11 -0600
committercflip <cflip@cflip.net>2022-07-07 13:10:00 -0600
commitc2cc2e5c759863229ce9d48d014243f6e7260353 (patch)
tree6be10b768b5f43af91840ae5c7cfecccff662d41 /src/HttpRequest.cpp
parent82c2af5878bb4c695a48c2d0707dffdb9356fce3 (diff)
Create an HttpRequest class
Diffstat (limited to 'src/HttpRequest.cpp')
-rw-r--r--src/HttpRequest.cpp24
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);
+ }
+}