#include "httpClient.h" #include #include #include #include namespace TMDb { HttpClient::HttpClient(const std::string & bu, const std::string & k) : BaseURL(bu), ApiKey(k) { } void HttpClient::packParams(boost::format &) { } void HttpClient::appendQueryParameters(std::string & path, const Parameters::value_type & nvp) const { path += nvp.first; path += "="; auto ev = curl_easy_escape(NULL, nvp.second.value->c_str(), nvp.second.value->size()); path += ev; curl_free(ev); } void HttpClient::appendQueryParameters(std::string & path, const Parameters & parameters) const { path += "?"; appendQueryParameters(path, { "api_key", ApiKey }); for (const auto & nvp : parameters) { if (nvp.second.value) { path += "&"; appendQueryParameters(path, nvp); } } } json::Value HttpClient::FetchJson(const std::string & path) const { AdHoc::Net::CurlStreamSource css(path); css.appendHeader("Accept: application/json"); css.setopt(CURLOPT_USERAGENT, "libtmdb/1.0"); AdHoc::Net::CurlStream curlstrm(css); return json::parseValue(curlstrm); } }