2019-02-10 21:46:39 -05:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <winhttp.h>
|
|
|
|
|
|
|
|
using InternetHandle = AutoHandle<Functor<WinHttpCloseHandle>>;
|
|
|
|
|
2019-06-13 04:01:29 -04:00
|
|
|
struct HttpRequest
|
2019-02-10 21:46:39 -05:00
|
|
|
{
|
2019-06-13 04:01:29 -04:00
|
|
|
HttpRequest(
|
|
|
|
const wchar_t* agentName,
|
|
|
|
const wchar_t* serverName,
|
|
|
|
const wchar_t* action,
|
|
|
|
const wchar_t* objectName,
|
2020-03-29 20:55:12 -06:00
|
|
|
std::string body = "",
|
|
|
|
const wchar_t* headers = NULL,
|
|
|
|
const wchar_t* referrer = NULL,
|
2019-06-13 04:01:29 -04:00
|
|
|
DWORD requestFlags = WINHTTP_FLAG_SECURE | WINHTTP_FLAG_ESCAPE_DISABLE,
|
|
|
|
const wchar_t* httpVersion = NULL,
|
2020-03-29 20:55:12 -06:00
|
|
|
const wchar_t** acceptTypes = NULL
|
2019-06-13 04:01:29 -04:00
|
|
|
);
|
|
|
|
operator bool() { return errorCode == ERROR_SUCCESS; }
|
|
|
|
|
|
|
|
std::wstring response;
|
2020-03-26 05:41:21 -06:00
|
|
|
std::wstring headers;
|
2019-06-13 04:01:29 -04:00
|
|
|
InternetHandle connection = NULL;
|
|
|
|
InternetHandle request = NULL;
|
|
|
|
DWORD errorCode = ERROR_SUCCESS;
|
2019-06-05 20:26:50 -04:00
|
|
|
};
|
2019-06-13 04:01:29 -04:00
|
|
|
|
|
|
|
std::wstring Escape(const std::wstring& text);
|
2020-03-29 20:55:12 -06:00
|
|
|
|
|
|
|
namespace JSON
|
|
|
|
{
|
|
|
|
void Unescape(std::wstring& text);
|
|
|
|
std::string Escape(const std::wstring& text);
|
|
|
|
}
|