Common/HttpRequest: Add option to set cookies
This commit is contained in:
parent
62adfaa01c
commit
44784cf363
|
@ -28,6 +28,7 @@ public:
|
||||||
explicit Impl(std::chrono::milliseconds timeout_ms, ProgressCallback callback);
|
explicit Impl(std::chrono::milliseconds timeout_ms, ProgressCallback callback);
|
||||||
|
|
||||||
bool IsValid() const;
|
bool IsValid() const;
|
||||||
|
void SetCookies(const std::string& cookies);
|
||||||
Response Fetch(const std::string& url, Method method, const Headers& headers, const u8* payload,
|
Response Fetch(const std::string& url, Method method, const Headers& headers, const u8* payload,
|
||||||
size_t size);
|
size_t size);
|
||||||
|
|
||||||
|
@ -56,6 +57,11 @@ bool HttpRequest::IsValid() const
|
||||||
return m_impl->IsValid();
|
return m_impl->IsValid();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HttpRequest::SetCookies(const std::string& cookies)
|
||||||
|
{
|
||||||
|
m_impl->SetCookies(cookies);
|
||||||
|
}
|
||||||
|
|
||||||
HttpRequest::Response HttpRequest::Get(const std::string& url, const Headers& headers)
|
HttpRequest::Response HttpRequest::Get(const std::string& url, const Headers& headers)
|
||||||
{
|
{
|
||||||
return m_impl->Fetch(url, Impl::Method::GET, headers, nullptr, 0);
|
return m_impl->Fetch(url, Impl::Method::GET, headers, nullptr, 0);
|
||||||
|
@ -125,6 +131,11 @@ bool HttpRequest::Impl::IsValid() const
|
||||||
return m_curl != nullptr;
|
return m_curl != nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HttpRequest::Impl::SetCookies(const std::string& cookies)
|
||||||
|
{
|
||||||
|
curl_easy_setopt(m_curl.get(), CURLOPT_COOKIE, cookies.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
static size_t CurlWriteCallback(char* data, size_t size, size_t nmemb, void* userdata)
|
static size_t CurlWriteCallback(char* data, size_t size, size_t nmemb, void* userdata)
|
||||||
{
|
{
|
||||||
auto* buffer = static_cast<std::vector<u8>*>(userdata);
|
auto* buffer = static_cast<std::vector<u8>*>(userdata);
|
||||||
|
|
|
@ -30,6 +30,8 @@ public:
|
||||||
|
|
||||||
using Response = std::optional<std::vector<u8>>;
|
using Response = std::optional<std::vector<u8>>;
|
||||||
using Headers = std::map<std::string, std::optional<std::string>>;
|
using Headers = std::map<std::string, std::optional<std::string>>;
|
||||||
|
|
||||||
|
void SetCookies(const std::string& cookies);
|
||||||
Response Get(const std::string& url, const Headers& headers = {});
|
Response Get(const std::string& url, const Headers& headers = {});
|
||||||
Response Post(const std::string& url, const std::vector<u8>& payload,
|
Response Post(const std::string& url, const std::vector<u8>& payload,
|
||||||
const Headers& headers = {});
|
const Headers& headers = {});
|
||||||
|
|
Loading…
Reference in New Issue