#include #include #ifndef REQUEST_H #define REQUEST_H #include #include #include #include #include #include "cookie.h" class Request { private: std::multimap getVars; std::multimap postVars; std::string url; std::string ip; std::string useragent; std::vector cookies; std::string request_method; void initMultiMap(std::multimap &map, const std::string &url); std::pair createPairFromVar(std::string var); public: Request() { } Request(std::string url); std::string get(const std::string &key) const; std::string post(const std::string &key) const; std::string cookie(const std::string &key) const; std::string param(const std::string &key) const; std::vector allGet(const std::string &key); std::vector allPost(const std::string &key); const std::vector &getCookies() const { return this->cookies; } void setCookies(std::vector cookies) { this->cookies = std::move(cookies); } void setGetVars(std::multimap getVars) { this->getVars = std::move(getVars); } void setPostVars(std::multimap postVars) { this->postVars = std::move(postVars); } void setIp(const std::string &ip) { this->ip = ip; } void setUseragent(const std::string &agent) { this->useragent = agent; } void setUrl(const std::string &url) { this->url = url; } std::string getUrl() const { return url; } std::string getIp() const { return ip; } std::string getUseragent() const { return useragent; } std::string getRequestMethod() const { return request_method; } inline void setRequestMethod(std::string request_method) { this->request_method = request_method; } void initGetMap(const std::string &url); void initPostMap(const std::string &url); void initCookies(const std::string &cookiestr); friend std::ostream &operator<<(std::ostream &os, const Request &req); }; inline std::ostream &operator<<(std::ostream &os, const Request &req) { os << req.request_method << " " << req.url << " " << req.ip; return os; } #endif // REQUEST_H