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="", const std::string &filemimetype="", const std::string &http_protocol="1.1") | |
Constructor. More... | |
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::vector< std::string > &filename={}, const std::vector< std::string > &filecontent={}, const std::vector< std::string > &filemimetypes={}, const std::string &http_protocol="1.1") | |
Constructor. More... | |
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={}, const std::string &http_protocol="1.1") | |
Constructor. More... | |
~http_request () | |
Destroy the http request object. More... | |
void | complete (const http_request_completion_t &c) |
Call the completion callback, if the request is complete. More... | |
bool | is_completed () |
Returns true if the request is complete. More... | |
http_request_completion_t | run (class cluster *owner) |
Execute the HTTP request and mark the request complete. More... | |
Public Attributes | |
std::string | endpoint |
Endpoint name e.g. More... | |
std::vector< std::string > | file_content |
Upload file contents (binary). More... | |
std::vector< std::string > | file_mimetypes |
Upload file mime types. More... | |
std::vector< std::string > | file_name |
Upload file name (server side). More... | |
http_method | method |
HTTP method for request. More... | |
std::string | mimetype |
Request mime type. More... | |
std::string | parameters |
Major and minor parameters. More... | |
std::string | postdata |
Postdata for POST and PUT. More... | |
std::string | protocol |
HTTP protocol. More... | |
std::string | reason |
Audit log reason for Discord requests, if non-empty. More... | |
std::multimap< std::string, std::string > | req_headers |
Request headers (non-discord requests only). More... | |
bool | waiting |
Waiting for rate limit to expire. More... | |
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 = "" , |
||
const std::string & | filemimetype = "" , |
||
const std::string & | http_protocol = "1.1" |
||
) |
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 |
filemimetype | The MIME type of any uploaded file for the request |
http_protocol | HTTP protocol |
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::vector< std::string > & | filename = {} , |
||
const std::vector< std::string > & | filecontent = {} , |
||
const std::vector< std::string > & | filemimetypes = {} , |
||
const std::string & | http_protocol = "1.1" |
||
) |
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 |
filemimetypes | The MIME type of any uploaded file for the request |
http_protocol | HTTP protocol |
References dpp::http_request_completion_t::body, dpp::https_client::get_content(), dpp::https_client::get_headers(), dpp::https_client::get_status(), dpp::http_request_completion_t::headers, dpp::http_request_completion_t::status, and dpp::unicode_emoji::v.
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 = {} , |
||
const std::string & | http_protocol = "1.1" |
||
) |
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 |
http_protocol | HTTP protocol |
|
default |
Destroy the http request object.
void dpp::http_request::complete | ( | const http_request_completion_t & | c | ) |
Call the completion callback, if the request is complete.
c | callback to call |
References dpp::https_client::get_header(), and dpp::http_request_completion_t::ratelimit_retry_after.
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 |
NOTE: "#" is in this list, really # is client side only. This won't stop some moron from using it as part of an API endpoint...
std::string dpp::http_request::endpoint |
Endpoint name e.g.
/api/users.
std::vector<std::string> dpp::http_request::file_content |
Upload file contents (binary).
std::vector<std::string> dpp::http_request::file_mimetypes |
Upload file mime types.
application/octet-stream if unspecified.
std::vector<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::protocol |
HTTP protocol.
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).
bool dpp::http_request::waiting |
Waiting for rate limit to expire.