Emscripten: Use custom user agent

This commit is contained in:
Tamás Bálint Misius
2023-06-21 22:41:30 +02:00
parent 58229f49b2
commit fd50f2dc9a

View File

@@ -150,17 +150,28 @@ namespace http
Module.emscriptenRequestManager.requests[id] = request; Module.emscriptenRequestManager.requests[id] = request;
return id; return id;
}, requestHandle->uri.c_str()); }, requestHandle->uri.c_str());
if (handle->headers.size())
{ {
auto userAgentSet = false;
for (auto &header : handle->headers) for (auto &header : handle->headers)
{ {
EM_ASM({ if (header.name.ToLower() == "user-agent")
Module.emscriptenRequestManager.requests[$0].fetchHeaders.append( {
UTF8ToString($1), userAgentSet = true;
UTF8ToString($2) }
);
}, handle->id, header.name.c_str(), header.value.c_str());
} }
if (!userAgentSet)
{
handle->headers.push_back({ "user-agent", userAgent });
}
}
for (auto &header : handle->headers)
{
EM_ASM({
Module.emscriptenRequestManager.requests[$0].fetchHeaders.append(
UTF8ToString($1),
UTF8ToString($2)
);
}, handle->id, header.name.c_str(), header.value.c_str());
} }
auto &postData = handle->postData; auto &postData = handle->postData;
if (std::holds_alternative<http::FormData>(postData) && std::get<http::FormData>(postData).size()) if (std::holds_alternative<http::FormData>(postData) && std::get<http::FormData>(postData).size())