10Duke Scale C++ Client
Loading...
Searching...
No Matches
HTTPRequest.h
1#ifndef TENDUKE_HTTP_HTTPREQUEST_H
2#define TENDUKE_HTTP_HTTPREQUEST_H
3
4#include "./HTTPRequestAuthenticator.h"
5#include "../net/URL.h"
6
7#include <map>
8#include <memory>
9#include <string>
10
11namespace tenduke { namespace http {
12
14const long DEFAULT_CONNECTION_TIMEOUT_MS = 30L * 1000L;
15
17const long DEFAULT_TIMEOUT_MS = 0L; // 0 = does not time out
18
23{
24public:
36 std::string method,
38 const std::multimap<std::string, std::string> &headers = std::multimap<std::string, std::string>(),
39 std::shared_ptr<const tenduke::http::HTTPRequestAuthenticator> requestAuthenticator = nullptr,
40 std::string messageBody = "",
41 long connectionTimeoutMs = DEFAULT_CONNECTION_TIMEOUT_MS,
42 long timeoutMs = DEFAULT_TIMEOUT_MS
43 ) : method(std::move(method)), messageBody(std::move(messageBody)), url(std::move(url)),
44 headers(headers), requestAuthenticator(std::move(requestAuthenticator)),
45 connectionTimeoutMs(connectionTimeoutMs), timeoutMs(timeoutMs)
46 {}
47
52 const std::string & getMessageBody() const {return messageBody;}
53
58 const std::string & getMethod() const {return method;}
59
64 const ::tenduke::net::URL getURL() const {return url;}
65
70 const std::multimap<std::string, std::string> & getHeaders() const {return headers;}
71
76 const std::shared_ptr<const tenduke::http::HTTPRequestAuthenticator> & getRequestAuthenticator() const {return requestAuthenticator;}
77
82 long getConnectionTimeoutMs() const {return connectionTimeoutMs;}
83
88 long getTimeoutMs() const {return timeoutMs;}
89
94 bool hasBody() const {return !messageBody.empty();}
95
96private:
97 const std::string method;
98 const std::string messageBody;
99 const ::tenduke::net::URL url;
100 const std::multimap<std::string, std::string> headers;
101 const std::shared_ptr<const tenduke::http::HTTPRequestAuthenticator> requestAuthenticator;
102 const long connectionTimeoutMs;
103 const long timeoutMs;
104};
105
106
107}}
108
109#endif // TENDUKE_HTTP_HTTPREQUEST_H
HTTPRequest(std::string method, ::tenduke::net::URL url, const std::multimap< std::string, std::string > &headers=std::multimap< std::string, std::string >(), std::shared_ptr< const tenduke::http::HTTPRequestAuthenticator > requestAuthenticator=nullptr, std::string messageBody="", long connectionTimeoutMs=DEFAULT_CONNECTION_TIMEOUT_MS, long timeoutMs=DEFAULT_TIMEOUT_MS)
Constructs new instance.
Definition HTTPRequest.h:35
long getTimeoutMs() const
Returns time out in ms.
Definition HTTPRequest.h:88
const std::shared_ptr< const tenduke::http::HTTPRequestAuthenticator > & getRequestAuthenticator() const
Returns HTTP request authenticator.
Definition HTTPRequest.h:76
HTTPRequest(std::string method, ::tenduke::net::URL url, const std::multimap< std::string, std::string > &headers=std::multimap< std::string, std::string >(), std::shared_ptr< const tenduke::http::HTTPRequestAuthenticator > requestAuthenticator=nullptr, std::string messageBody="", long connectionTimeoutMs=DEFAULT_CONNECTION_TIMEOUT_MS, long timeoutMs=DEFAULT_TIMEOUT_MS)
Constructs new instance.
Definition HTTPRequest.h:35
const std::string & getMethod() const
Returns the method.
Definition HTTPRequest.h:58
const ::tenduke::net::URL getURL() const
Returns the URL.
Definition HTTPRequest.h:64
bool hasBody() const
Checks if request has body.
Definition HTTPRequest.h:94
const std::multimap< std::string, std::string > & getHeaders() const
Returns request headers.
Definition HTTPRequest.h:70
const std::string & getMessageBody() const
Returns the message body.
Definition HTTPRequest.h:52
long getConnectionTimeoutMs() const
Returns connection timeout in ms.
Definition HTTPRequest.h:82
Represents URL.
Definition URL.h:21
HTTP-related services.
Definition BadRequest.h:6
const long DEFAULT_CONNECTION_TIMEOUT_MS
Default connection time out in milliseconds.
Definition HTTPRequest.h:14
const long DEFAULT_TIMEOUT_MS
Default total time out in milliseconds.
Definition HTTPRequest.h:17
Root for classes, functions and globals of 10Duke C++ Client.
Definition AbstractClientFactory.h:16