Webserv
Loading...
Searching...
No Matches
HttpRequest.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "http/utils.hpp"
4#include "http/HttpStatus.hpp"
5#include <string>
6#include <map>
7#include <ostream>
8
9namespace http {
10
19public:
21 typedef std::map<std::string, std::string> HeaderMap;
22
25 std::string uri;
26 std::string path;
27 std::string version;
29 std::string body;
30
31 static HttpRequest parse(std::string const &);
32};
33
34std::ostream &operator<<(std::ostream &o, HttpRequest const &r);
35std::ostream &operator<<(std::ostream &o, HttpRequest::HeaderMap const &r);
36
37namespace details {
38
39bool parseStartLine(HttpRequest &r, std::istringstream &s);
40bool parseHeaderLine(std::string const &line, std::pair<std::string, std::string> &p);
41bool parseHeaders(HttpRequest::HeaderMap &m, std::istringstream &s);
42bool parseBody(HttpRequest const &r, std::istringstream const &s);
43std::string extractPathFUri(std::string const &uri);
44
45} // namespace details
46
47} // namespace http
A data container for a parsed HTTP request.
Definition HttpRequest.hpp:18
HttpRequest()
Definition HttpRequest.cpp:11
std::map< std::string, std::string > HeaderMap
Definition HttpRequest.hpp:21
std::string uri
Definition HttpRequest.hpp:25
std::string path
Definition HttpRequest.hpp:26
std::string version
Definition HttpRequest.hpp:27
http::Status status
Definition HttpRequest.hpp:23
utils::HttpMethod method
Definition HttpRequest.hpp:24
static HttpRequest parse(std::string const &)
Definition HttpRequest.cpp:14
std::string body
Definition HttpRequest.hpp:29
HeaderMap headers
Definition HttpRequest.hpp:28
Definition HttpRequest.hpp:37
bool parseHeaders(HttpRequest::HeaderMap &m, std::istringstream &s)
bool parseStartLine(HttpRequest &r, std::istringstream &s)
std::string extractPathFUri(std::string const &uri)
Definition HttpRequest.cpp:41
bool parseBody(HttpRequest const &r, std::istringstream const &s)
bool parseHeaderLine(std::string const &line, std::pair< std::string, std::string > &p)
Definition error_pages.hpp:7
std::ostream & operator<<(std::ostream &o, HttpRequest const &r)
Definition HttpRequest.cpp:25
Status
Enumeration of common HTTP status codes.
Definition HttpStatus.hpp:9
HttpMethod
Definition utils.hpp:7