uvco 0.1
Loading...
Searching...
No Matches
Functions
uvco::anonymous_namespace{curl.cc} Namespace Reference

Functions

std::string urlEncode (CURL *curl, std::string_view url)
 
std::string formattedFields (CURL *curl, std::span< const std::pair< std::string, std::string > > fields)
 Format a list of fields for POST requests.
 

Function Documentation

◆ formattedFields()

std::string uvco::anonymous_namespace{curl.cc}::formattedFields ( CURL *  curl,
std::span< const std::pair< std::string, std::string > >  fields 
)

Format a list of fields for POST requests.

47 {
48 std::string result;
49 result.reserve(std::accumulate(
50 fields.begin(), fields.end(), 0, [](size_t acc, const auto &pair) {
51 return acc + pair.first.size() + pair.second.size() + 2;
52 }));
53
54 for (const auto &[key, value] : fields) {
55 result += urlEncode(curl, key);
56 result += '=';
57 result += urlEncode(curl, value);
58 result += '&';
59 }
60 return result;
61}
std::string urlEncode(CURL *curl, std::string_view url)
Definition curl.cc:36

◆ urlEncode()

std::string uvco::anonymous_namespace{curl.cc}::urlEncode ( CURL *  curl,
std::string_view  url 
)
36 {
37 char *result =
38 curl_easy_escape(curl, url.data(), static_cast<int>(url.size()));
39 const std::string encoded{result};
40 curl_free(result);
41 return encoded;
42}