Как загрузить несколько файлов одновременно с Curl?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как загрузить несколько файлов одновременно с Curl?

Сообщение Anonymous »

Я загружаю несколько файлов из моего github < /strong>, используя мой личный токен, я смог заставить его работать, но загрузить их один за другим.#include

static size_t WriteMemoryCallback(void* contents, size_t size, size_t nmemb, void* userp)
{
size_t realsize = size * nmemb;
auto& mem = *static_cast(userp);
mem.append(static_cast(contents), realsize);
SecureZeroMemory(contents, realsize);
return realsize;
}

void curl(std::string& data, const std::string_view& url)
{
CURL* curl_handle;
CURLcode res;
struct curl_slist* slist{};

curl_handle = curl_easy_init();

curl_easy_setopt(curl_handle, CURLOPT_URL, url.data());
//curl_easy_setopt(curl_handle, CURLOPT_TCP_KEEPALIVE, 0);

slist = curl_slist_append(slist, gitToken.data());
slist = curl_slist_append(slist, "Accept: application/vnd.github.v3.raw");
curl_easy_setopt(curl_handle, CURLOPT_HTTPHEADER, slist);

curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, &data);
curl_easy_setopt(curl_handle, CURLOPT_USERAGENT, "curl/7.55.1");

// Necessary for downloading file from github repo.
curl_easy_setopt(curl_handle, CURLOPT_FOLLOWLOCATION, 1L);

curl_easy_setopt(curl_handle, CURLOPT_VERBOSE, 1L); // only to debug

res = curl_easy_perform(curl_handle);
OutputDebugStringA(curl_easy_strerror(res));

if(res != CURLE_OK)
std::cerr

Подробнее здесь: https://stackoverflow.com/questions/769 ... -with-curl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»