MCPcopy Create free account
hub / github.com/chronoxor/CppServer / HTTPSClientEx

Class HTTPSClientEx

include/server/http/https_client.h:175–273  ·  view source on GitHub ↗

HTTPS extended client ! HTTPS extended client make requests to HTTPS Web server with returning std::future as a synchronization primitive. Thread-safe. */

Source from the content-addressed store, hash-verified

173 Thread-safe.
174*/
175class HTTPSClientEx : public HTTPSClient
176{
177public:
178 using HTTPSClient::HTTPSClient;
179
180 //! Get the TCP resolver
181 std::shared_ptr<Asio::TCPResolver>& resolver() noexcept { return _resolver; }
182 const std::shared_ptr<Asio::TCPResolver>& resolver() const noexcept { return _resolver; }
183 //! Get the timeout check timer
184 std::shared_ptr<Asio::Timer>& timeout() noexcept { return _timeout; }
185 const std::shared_ptr<Asio::Timer>& timeout() const noexcept { return _timeout; }
186
187 //! Send HTTP request
188 /*!
189 \param timeout - HTTP request timeout
190 \return HTTP request future
191 */
192 std::future<HTTPResponse> SendRequest(const CppCommon::Timespan& timeout = CppCommon::Timespan::minutes(1)) { return SendRequest(_request, timeout); }
193 //! HTTP request
194 /*!
195 \param request - HTTP request
196 \param timeout - HTTP request timeout
197 \return HTTP request future
198 */
199 std::future<HTTPResponse> SendRequest(const HTTPRequest& request, const CppCommon::Timespan& timeout = CppCommon::Timespan::minutes(1));
200
201 //! Send HEAD request
202 /*!
203 \param url - URL to request
204 \param timeout - HTTP request timeout
205 \return HTTP request future
206 */
207 std::future<HTTPResponse> SendHeadRequest(std::string_view url, const CppCommon::Timespan& timeout = CppCommon::Timespan::minutes(1))
208 { return SendRequest(_request.MakeHeadRequest(url), timeout); }
209 //! Send GET request
210 /*!
211 \param url - URL to request
212 \param timeout - HTTP request timeout
213 \return HTTP request future
214 */
215 std::future<HTTPResponse> SendGetRequest(std::string_view url, const CppCommon::Timespan& timeout = CppCommon::Timespan::minutes(1))
216 { return SendRequest(_request.MakeGetRequest(url), timeout); }
217 //! Send POST request
218 /*!
219 \param url - URL to request
220 \param content - Content
221 \param timeout - HTTP request timeout
222 \return HTTP request future
223 */
224 std::future<HTTPResponse> SendPostRequest(std::string_view url, std::string_view content, const CppCommon::Timespan& timeout = CppCommon::Timespan::minutes(1))
225 { return SendRequest(_request.MakePostRequest(url, content), timeout); }
226 //! Send PUT request
227 /*!
228 \param url - URL to request
229 \param content - Content
230 \param timeout - HTTP request timeout
231 \return HTTP request future
232 */

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected