X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fhttpfetch.h;h=3b9f17f0a53cd68a6639fdfe03fa914e1b2a41c9;hb=e3bd6704a0eb65e9490347680441c7a08df36f7a;hp=5a673d7e6ec9824d92dbf226d074f8544ceafa54;hpb=8f7785771b9e02b1a1daf7a252550d78ea93053d;p=dragonfireclient.git diff --git a/src/httpfetch.h b/src/httpfetch.h index 5a673d7e6..3b9f17f0a 100644 --- a/src/httpfetch.h +++ b/src/httpfetch.h @@ -17,8 +17,7 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef HTTPFETCH_HEADER -#define HTTPFETCH_HEADER +#pragma once #include #include "util/string.h" @@ -29,6 +28,15 @@ with this program; if not, write to the Free Software Foundation, Inc., #define HTTPFETCH_DISCARD 0 #define HTTPFETCH_SYNC 1 +// Methods +enum HttpMethod : u8 +{ + HTTP_GET, + HTTP_POST, + HTTP_PUT, + HTTP_DELETE, +}; + struct HTTPFetchRequest { std::string url = ""; @@ -51,12 +59,15 @@ struct HTTPFetchRequest // application/x-www-form-urlencoded. POST-only. bool multipart = false; - // POST fields. Fields are escaped properly. - // If this is empty a GET request is done instead. - StringMap post_fields; + // The Method to use default = GET + // Avaible methods GET, POST, PUT, DELETE + HttpMethod method = HTTP_GET; - // Raw POST data, overrides post_fields. - std::string post_data; + // Fields of the request + StringMap fields; + + // Raw data of the request overrides fields + std::string raw_data; // If not empty, should contain entries such as "Accept: text/html" std::vector extra_headers; @@ -77,10 +88,10 @@ struct HTTPFetchResult unsigned long caller = HTTPFETCH_DISCARD; unsigned long request_id = 0; - HTTPFetchResult() {} + HTTPFetchResult() = default; - HTTPFetchResult(const HTTPFetchRequest &fetch_request) - : caller(fetch_request.caller), request_id(fetch_request.request_id) + HTTPFetchResult(const HTTPFetchRequest &fetch_request) : + caller(fetch_request.caller), request_id(fetch_request.request_id) { } }; @@ -113,5 +124,3 @@ void httpfetch_caller_free(unsigned long caller); // Performs a synchronous HTTP request. This blocks and therefore should // only be used from background threads. void httpfetch_sync(const HTTPFetchRequest &fetch_request, HTTPFetchResult &fetch_result); - -#endif // !HTTPFETCH_HEADER