# RequestExecutor.hpp
This File On Github
Ask A Question
API: latest
module: oatpp-curl
#include "oatpp-curl/RequestExecutor.hpp"
# RequestExecutor
Curl request executor. Uses Curl to perform client to server requests.
Extends oatpp::web::client::RequestExecutor.
namespace oatpp { namespace curl {
class RequestExecutor : public oatpp::web::client::RequestExecutor {}
}}
# Methods
Return Type | Name | Summary |
---|---|---|
[none] | RequestExecutor | Constructor. |
std::shared_ptr<RequestExecutor> | createShared | Create shared RequestExecutor. |
std::shared_ptr<ConnectionHandle> | getConnection | Connection reuse mechanism for curl RequestExecutor is NOT IMPLEMENTED yet. |
oatpp::async::CoroutineStarterForResult<const std::shared_ptr<ConnectionHandle>&> | getConnectionAsync | Connection reuse mechanism for curl RequestExecutor is NOT IMPLEMENTED yet. |
void | invalidateConnection | Invalidate connection. |
std::shared_ptr<Response> | executeOnce | Execute http request. Implementation of oatpp::curl::RequestExecutor::execute method. |
oatpp::async::CoroutineStarterForResult<const std::shared_ptr<Response>&> | executeOnceAsync | Same as RequestExecutor::execute() but Async. |
# RequestExecutor::RequestExecutor
Constructor.
- @param baseUrl - base url for requests. Ex.: "https://oatpp.io/"
- @param verbose -
true
to print curl logs tostd::cout
.
RequestExecutor(const oatpp::String& baseUrl, bool verbose = false)
# RequestExecutor::createShared
Create shared RequestExecutor.
- @param baseUrl - base url for requests. Ex.: "https://oatpp.io/"
- @param verbose -
true
to print curl logs tostd::cout
. - @return -
std::shared_ptr
to RequestExecutor.
static std::shared_ptr<RequestExecutor> createShared(const oatpp::String& baseUrl, bool verbose = false)
# RequestExecutor::getConnection
Connection reuse mechanism for curl RequestExecutor is NOT IMPLEMENTED yet.
- @return - RequestExecutor::StubConnectionHandle.
std::shared_ptr<ConnectionHandle> getConnection() override
# RequestExecutor::getConnectionAsync
Connection reuse mechanism for curl RequestExecutor is NOT IMPLEMENTED yet.
- @return - RequestExecutor::StubConnectionHandle.
oatpp::async::CoroutineStarterForResult<const std::shared_ptr<ConnectionHandle>&> getConnectionAsync() override
# RequestExecutor::invalidateConnection
Invalidate connection.
- @param connectionHandle
void invalidateConnection(const std::shared_ptr<ConnectionHandle>& connectionHandle) override
# RequestExecutor::executeOnce
Execute http request. Implementation of oatpp::curl::RequestExecutor::execute method.
- @param method - method ex: ["GET", "POST", "PUT", etc.].
- @param path - path to resource.
- @param userDefinedHeaders - headers map oatpp::web::client::RequestExecutor::Headers.
- @param body -
std::shared_ptr
to oatpp::web::client::RequestExecutor::Body object. - @param connectionHandle -
nullptr
. This parameter is ignored for now. - @return - oatpp::web::protocol::http::incoming::Response.
std::shared_ptr<Response> executeOnce(const String& method,
const String& path,
const Headers& userDefinedHeaders,
const std::shared_ptr<Body>& body,
const std::shared_ptr<ConnectionHandle>& connectionHandle = nullptr) override
# RequestExecutor::executeOnceAsync
Same as RequestExecutor::execute() but Async.
- @param method - method ex: ["GET", "POST", "PUT", etc.].
- @param path - path to resource.
- @param headers - headers map RequestExecutor::Headers.
- @param body -
std::shared_ptr
to RequestExecutor::Body object. - @param connectionHandle -
nullptr
. This parameter is ignored for now. - @return - oatpp::async::CoroutineStarterForResult.
virtual oatpp::async::CoroutineStarterForResult<const std::shared_ptr<Response>&>
executeOnceAsync(const String& method,
const String& path,
const Headers& headers,
const std::shared_ptr<Body>& body,
const std::shared_ptr<ConnectionHandle>& connectionHandle = nullptr) override
# RequestExecutor::StubConnectionHandle
Connection reuse mechanism for curl RequestExecutor is NOT IMPLEMENTED yet.
Use dummy stub to mock the real connection and prevent the crash.
namespace oatpp { namespace curl {
class RequestExecutor : public oatpp::web::client::RequestExecutor {
class StubConnectionHandle : public ConnectionHandle {}
};
}}