У нас есть один REST API, который возвращает ответ в форме gzip. Всякий раз, когда я загружаю тот же самый ответ от почтальона и сохраняю его как .zip, он сохраняется правильно. Однако, когда я пишу ответ в файл .zip с помощью методов libcurl, файл поврежден неверными данными. Не найдено различий при сравнении ответов от методов почтальона и libcurl.
FILE * wfp1 = SYSS_fopen(responseFile, "w+"); //File pointer to write the REST response
if (!wfp1)
{
perror("Write File Open:");
}
request.SetWriteDataObject(wfp1);
request.SetWriteDataFn([&](void* contents, size_t size, size_t nmemb, void *stream)
{
char* fchar = nullptr;
fchar = static_cast<char*>(contents);
char* buffer = (char*)SM_alloc(nmemb + 1, sizeof(char));
snprintf(buffer, nmemb + 1, "%s", fchar);
fileStream.append(buffer);
SM_free(buffer);
return fwrite(contents, size, nmemb, (FILE*)stream);
});