diff options
Diffstat (limited to 'src/zenhttp')
| -rw-r--r-- | src/zenhttp/httpclient.cpp | 22 | ||||
| -rw-r--r-- | src/zenhttp/include/zenhttp/httpclient.h | 2 |
2 files changed, 23 insertions, 1 deletions
diff --git a/src/zenhttp/httpclient.cpp b/src/zenhttp/httpclient.cpp index 3da9f91fc..c5c808c23 100644 --- a/src/zenhttp/httpclient.cpp +++ b/src/zenhttp/httpclient.cpp @@ -39,7 +39,14 @@ HttpClientBase::HttpClientBase(std::string_view BaseUri, const HttpClientSetting , m_BaseUri(BaseUri) , m_ConnectionSettings(ConnectionSettings) { - m_SessionId = GetSessionIdString(); + if (ConnectionSettings.SessionId == Oid::Zero) + { + m_SessionId = GetSessionIdString(); + } + else + { + m_SessionId = ConnectionSettings.SessionId.ToString(); + } } HttpClientBase::~HttpClientBase() @@ -207,6 +214,19 @@ HttpClient::~HttpClient() delete m_Inner; } +void +HttpClient::SetSessionId(const Oid& SessionId) +{ + if (SessionId == Oid::Zero) + { + m_SessionId = GetSessionIdString(); + } + else + { + m_SessionId = SessionId.ToString(); + } +} + HttpClient::Response HttpClient::Put(std::string_view Url, const IoBuffer& Payload, const HttpClient::KeyValueMap& AdditionalHeader) { diff --git a/src/zenhttp/include/zenhttp/httpclient.h b/src/zenhttp/include/zenhttp/httpclient.h index aae7b94e5..c1fc1efa6 100644 --- a/src/zenhttp/include/zenhttp/httpclient.h +++ b/src/zenhttp/include/zenhttp/httpclient.h @@ -55,6 +55,7 @@ struct HttpClientSettings bool AssumeHttp2 = false; bool AllowResume = false; uint8_t RetryCount = 0; + Oid SessionId = Oid::Zero; }; class HttpClientError : public std::runtime_error @@ -230,6 +231,7 @@ public: LoggerRef Log() { return m_Log; } std::string_view GetBaseUri() const { return m_BaseUri; } std::string_view GetSessionId() const { return m_SessionId; } + void SetSessionId(const Oid& SessionId); bool Authenticate(); |