D++ (DPP)
C++ Discord API Bot Library
|
A HTTP request. More...
#include <queues.h>
Public Member Functions | |
http_request (const std::string &_endpoint, const std::string &_parameters, http_completion_event completion, const std::string &_postdata="", http_method method=m_get, const std::string &audit_reason="", const std::string &filename="", const std::string &filecontent="") | |
http_request (const std::string &_url, http_completion_event completion, http_method method=m_get, const std::string &_postdata="", const std::string &_mimetype="text/plain", const std::multimap< std::string, std::string > &_headers={}) | |
~http_request () | |
void | complete (const http_request_completion_t &c) |
http_request_completion_t | run (class cluster *owner) |
bool | is_completed () |
Public Attributes | |
std::string | endpoint |
std::string | parameters |
std::string | postdata |
http_method | method |
std::string | reason |
std::string | file_name |
std::string | file_content |
std::string | mimetype |
std::multimap< std::string, std::string > | req_headers |
A HTTP request.
You should instantiate one of these objects via its constructor, and pass a pointer to it into an instance of request_queue. Although you can directly call the run() method of the object and it will make a HTTP call, be aware that if you do this, it will be a BLOCKING call (not asynchronous) and will not respect rate limits, as both of these functions are managed by the request_queue class.
dpp::http_request::http_request | ( | const std::string & | _endpoint, |
const std::string & | _parameters, | ||
http_completion_event | completion, | ||
const std::string & | _postdata = "" , |
||
http_method | method = m_get , |
||
const std::string & | audit_reason = "" , |
||
const std::string & | filename = "" , |
||
const std::string & | filecontent = "" |
||
) |
Constructor. When constructing one of these objects it should be passed to request_queue::post_request().
_endpoint | The API endpoint, e.g. /api/guilds |
_parameters | Major and minor parameters for the endpoint e.g. a user id or guild id |
completion | completion event to call when done |
_postdata | Data to send in POST and PUT requests |
method | The HTTP method to use from dpp::http_method |
audit_reason | Audit log reason to send, empty to send none |
filename | The filename (server side) of any uploaded file |
filecontent | The binary content of any uploaded file for the request |
dpp::http_request::http_request | ( | const std::string & | _url, |
http_completion_event | completion, | ||
http_method | method = m_get , |
||
const std::string & | _postdata = "" , |
||
const std::string & | _mimetype = "text/plain" , |
||
const std::multimap< std::string, std::string > & | _headers = {} |
||
) |
Constructor. When constructing one of these objects it should be passed to request_queue::post_request().
_url | Raw HTTP url |
completion | completion event to call when done |
method | The HTTP method to use from dpp::http_method |
_postdata | Data to send in POST and PUT requests |
_mimetype | POST data mime type |
_headers | HTTP headers to send |
dpp::http_request::~http_request | ( | ) |
Destructor
void dpp::http_request::complete | ( | const http_request_completion_t & | c | ) |
Call the completion callback, if the request is complete.
c | callback to call |
bool dpp::http_request::is_completed | ( | ) |
Returns true if the request is complete
http_request_completion_t dpp::http_request::run | ( | class cluster * | owner | ) |
Execute the HTTP request and mark the request complete.
owner | creating cluster |
std::string dpp::http_request::endpoint |
Endpoint name e.g. /api/users
std::string dpp::http_request::file_content |
Upload file contents (binary)
std::string dpp::http_request::file_name |
Upload file name (server side)
http_method dpp::http_request::method |
HTTP method for request
std::string dpp::http_request::mimetype |
Request mime type
std::string dpp::http_request::parameters |
Major and minor parameters
std::string dpp::http_request::postdata |
Postdata for POST and PUT
std::string dpp::http_request::reason |
Audit log reason for Discord requests, if non-empty
std::multimap<std::string, std::string> dpp::http_request::req_headers |
Request headers (non-discord requests only)