From 382595ff7170475f9f4ef74c906c970f0689861c Mon Sep 17 00:00:00 2001 From: Silent Date: Mon, 12 Jul 2021 20:36:33 +0200 Subject: [PATCH] Fix POST messages Fixes rich presence in RetroAchievements --- src/frontend-common/http_downloader_uwp.cpp | 7 +++---- src/frontend-common/http_downloader_winhttp.cpp | 7 ++++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/frontend-common/http_downloader_uwp.cpp b/src/frontend-common/http_downloader_uwp.cpp index 4ea7b64e5..70bee2564 100644 --- a/src/frontend-common/http_downloader_uwp.cpp +++ b/src/frontend-common/http_downloader_uwp.cpp @@ -56,10 +56,9 @@ bool HTTPDownloaderUWP::StartRequest(HTTPDownloader::Request* request) if (req->type == Request::Type::Post) { - const winrt::Windows::Storage::Streams::Buffer post_buf(static_cast(req->post_data.size())); - std::memcpy(post_buf.data(), req->post_data.data(), req->post_data.size()); - - const HttpBufferContent post_content(post_buf); + const HttpStringContent post_content(StringUtil::UTF8StringToWideString(req->post_data), + winrt::Windows::Storage::Streams::UnicodeEncoding::Utf8, + L"application/x-www-form-urlencoded"); req->request_async = req->client.PostAsync(uri, post_content); } else diff --git a/src/frontend-common/http_downloader_winhttp.cpp b/src/frontend-common/http_downloader_winhttp.cpp index 15d19f50f..697d73ca0 100644 --- a/src/frontend-common/http_downloader_winhttp.cpp +++ b/src/frontend-common/http_downloader_winhttp.cpp @@ -255,9 +255,10 @@ bool HTTPDownloaderWinHttp::StartRequest(HTTPDownloader::Request* request) BOOL result; if (req->type == HTTPDownloader::Request::Type::Post) { - result = WinHttpSendRequest(req->hRequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, req->post_data.data(), - static_cast(req->post_data.size()), static_cast(req->post_data.size()), - reinterpret_cast(req)); + const std::wstring_view additionalHeaders(L"Content-Type: application/x-www-form-urlencoded\r\n"); + result = WinHttpSendRequest(req->hRequest, additionalHeaders.data(), additionalHeaders.size(), + req->post_data.data(), static_cast(req->post_data.size()), + static_cast(req->post_data.size()), reinterpret_cast(req)); } else {