C++ edjLibrary SDK
Loading...
Searching...
No Matches
http.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <vector>
5#include <map>
6#include <strings.h>
7
8#include "utils.hpp"
9
10namespace edjx {
11
13namespace http {
14
18 enum class HttpVersion {
19 HTTP_09,
20 HTTP_10,
21 HTTP_11,
22 HTTP_2,
23 HTTP_3
24 };
25
29 enum class HttpMethod {
30 NONE = 0,
31 GET = 1,
32 HEAD = 2,
33 POST = 3,
34 PUT = 4,
35 DELETE = 5,
36 CONNECT = 6,
37 OPTIONS = 7,
38 TRACE = 8,
39 PATCH = 9,
40 };
41
46 bool operator() (const std::string &lhs, const std::string &rhs) const {
47 return strcasecmp(lhs.c_str(), rhs.c_str()) < 0;
48 }
49 };
50
54 typedef std::map<std::string, std::vector<std::string>, CaseInsensitiveKeys> HttpHeaders;
55
60 typedef uint16_t HttpStatusCode;
61
67 class Uri {
68 public:
72 inline Uri() {}
73
79 inline Uri(const std::string & url) {
80 this->url = url;
81 }
82
88 inline Uri(const char * url) {
89 this->url = std::string(url);
90 }
91
98 inline Uri(const std::vector<uint8_t> & url) {
99 this->url = edjx::utils::to_string(url);
100 }
101
107 inline std::string as_string() const {
108 return url;
109 }
110
111 private:
112 std::string url;
113 };
114
115}}
Class that represents a URL.
Definition: http.hpp:67
Uri()
Default constructor.
Definition: http.hpp:72
Uri(const char *url)
Construct URL from a C string.
Definition: http.hpp:88
Uri(const std::vector< uint8_t > &url)
Construct URL from a vector of ASCII characters.
Definition: http.hpp:98
std::string as_string() const
Returns URL as a string.
Definition: http.hpp:107
Uri(const std::string &url)
Construct URL from a string.
Definition: http.hpp:79
HttpVersion
Enum containing an HTTP version.
Definition: http.hpp:18
@ HTTP_3
HTTP version HTTP/3.0.
@ HTTP_09
HTTP version HTTP/0.9.
@ HTTP_10
HTTP version HTTP/1.0.
@ HTTP_11
HTTP version HTTP/1.1.
@ HTTP_2
HTTP version HTTP/2.0.
uint16_t HttpStatusCode
HTTP status code (e.g., value 200 means OK, value 404 means Not Found)
Definition: http.hpp:60
std::map< std::string, std::vector< std::string >, CaseInsensitiveKeys > HttpHeaders
A map of HttpHeaders where keys are case-insensitive header names.
Definition: http.hpp:54
HttpMethod
Enum containing a number of common HTTP methods.
Definition: http.hpp:29
std::string to_string(const std::vector< uint8_t > &vec)
Convert a vector of bytes to a string.
Definition: error.hpp:5
A map<string, ...> comparator that achieves case-insensitive keys.
Definition: http.hpp:45
bool operator()(const std::string &lhs, const std::string &rhs) const
Definition: http.hpp:46