Common/HttpRequest: Implement EscapeComponent
This commit is contained in:
parent
0bce1c509d
commit
3dbf44417a
|
@ -36,6 +36,7 @@ public:
|
||||||
|
|
||||||
static int CurlProgressCallback(Impl* impl, double dlnow, double dltotal, double ulnow,
|
static int CurlProgressCallback(Impl* impl, double dlnow, double dltotal, double ulnow,
|
||||||
double ultotal);
|
double ultotal);
|
||||||
|
const std::string EscapeComponent(const std::string& string);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static std::mutex s_curl_was_inited_mutex;
|
static std::mutex s_curl_was_inited_mutex;
|
||||||
|
@ -74,6 +75,11 @@ void HttpRequest::FollowRedirects(long max)
|
||||||
m_impl->FollowRedirects(max);
|
m_impl->FollowRedirects(max);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const std::string HttpRequest::EscapeComponent(const std::string& string)
|
||||||
|
{
|
||||||
|
return m_impl->EscapeComponent(string);
|
||||||
|
}
|
||||||
|
|
||||||
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);
|
||||||
|
@ -159,6 +165,11 @@ void HttpRequest::Impl::FollowRedirects(long max)
|
||||||
curl_easy_setopt(m_curl.get(), CURLOPT_MAXREDIRS, max);
|
curl_easy_setopt(m_curl.get(), CURLOPT_MAXREDIRS, max);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const std::string HttpRequest::Impl::EscapeComponent(const std::string& string)
|
||||||
|
{
|
||||||
|
return curl_easy_escape(m_curl.get(), string.c_str(), static_cast<int>(string.size()));
|
||||||
|
}
|
||||||
|
|
||||||
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);
|
||||||
|
|
|
@ -34,6 +34,7 @@ public:
|
||||||
void SetCookies(const std::string& cookies);
|
void SetCookies(const std::string& cookies);
|
||||||
void UseIPv4();
|
void UseIPv4();
|
||||||
void FollowRedirects(long max = 1);
|
void FollowRedirects(long max = 1);
|
||||||
|
const std::string EscapeComponent(const std::string& string);
|
||||||
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