10Duke Enterprise C++ Client
Loading...
Searching...
No Matches
Win32HTTPCall.h
1#ifndef TENDUKE_HTTP_WIN_WIN32HTTPCALL_H
2#define TENDUKE_HTTP_WIN_WIN32HTTPCALL_H
3
4#include "http/HTTPCall.h"
5#include "http/HTTPRequest.h"
6#include "net/URLs.h"
7#include "WinHttpRequest.h"
8#include "WinHttpSession.h"
9#include <memory>
10
11namespace tenduke { namespace http { namespace win {
12
16class Win32HTTPCall : public ::tenduke::http::HTTPCall
17{
18public:
19 Win32HTTPCall(
20 const std::shared_ptr<const ::tenduke::http::HTTPRequest> &httpRequest,
21 const std::shared_ptr<const ::tenduke::http::win::WinHttpSession> &session,
22 const ::tenduke::net::URLs &urls
23 );
24
25 ~Win32HTTPCall() override = default;
26
27 // ::tenduke::http::HTTPCall implementation
28public:
29 std::unique_ptr<::tenduke::http::HTTPResponse> execute() override;
30
31protected:
32 virtual std::unique_ptr<::tenduke::http::win::InternetHandle> connect();
33 virtual std::multimap<std::string, std::string> getResponseHeaders(const ::tenduke::http::win::WinHttpRequest &request);
34 virtual std::unique_ptr<::tenduke::http::win::WinHttpRequest> openRequest(::tenduke::http::win::InternetHandle &connection);
35 virtual std::unique_ptr<::tenduke::utl::BinaryData> readResponseBody(const ::tenduke::http::win::WinHttpRequest &request);
36 virtual void setRequestHeaders(::tenduke::http::win::WinHttpRequest &request);
37
38private:
40 const std::shared_ptr<const ::tenduke::http::HTTPRequest> httpRequest;
41 const std::shared_ptr<const ::tenduke::http::win::WinHttpSession> session;
42 const ::tenduke::net::URLs &urls;
43};
44
45}}}
46#endif //TENDUKE_HTTP_WIN_WIN32HTTPCALL_H
HTTP-call which executes the request and returns HTTPResponse.
Definition HTTPCall.h:15
Encapsulation of InternetHandle for RAII.
Definition InternetHandle.h:16
std::unique_ptr<::tenduke::http::HTTPResponse > execute() override
Executes the call synchronously.
Definition Win32HTTPCall.cpp:115
Encapsulation of WinHTTP-request.
Definition WinHttpRequest.h:16
HTTP-related services.
Definition BadRequest.h:6
Root for classes, functions and globals of 10Duke C++ Client.
Definition APIRequest.h:4