38 lines
1.1 KiB
C++
38 lines
1.1 KiB
C++
#pragma once
|
|
#include <cpr/cpr.h>
|
|
#include "proxy_mgr.hpp"
|
|
|
|
namespace big
|
|
{
|
|
constexpr auto CONNECT_TIMEOUT = 1000;
|
|
constexpr auto REQUEST_TIMEOUT = 5000;
|
|
|
|
class http_client
|
|
{
|
|
private:
|
|
cpr::Session m_session;
|
|
proxy_mgr m_proxy_mgr;
|
|
|
|
public:
|
|
http_client();
|
|
virtual ~http_client() = default;
|
|
http_client(const http_client&) = delete;
|
|
http_client(http_client&&) noexcept = delete;
|
|
http_client& operator=(const http_client&) = delete;
|
|
http_client& operator=(http_client&&) noexcept = delete;
|
|
|
|
bool download(const cpr::Url& url, const std::filesystem::path& path, cpr::Header headers = {}, cpr::Parameters query_params = {});
|
|
cpr::Response get(const cpr::Url& url, cpr::Header headers = {}, cpr::Parameters query_params = {});
|
|
cpr::Response post(const cpr::Url& url, cpr::Header headers = {}, cpr::Body body = {});
|
|
|
|
proxy_mgr& proxy_mgr()
|
|
{
|
|
return m_proxy_mgr;
|
|
}
|
|
|
|
bool init(file proxy_settings_file);
|
|
|
|
};
|
|
|
|
inline auto g_http_client = http_client();
|
|
} |