Moin zusammen,
ich versuche gerade eine Datei gezippt von einem Server herunterzuladen mit libcurl. Folgendes kleine Programm zeigt, was ich mache:
Allerdings wird es nicht komprimiert geschickt. Als res bekomme ich CURLE_OK zurück, die Datei wird auch korrekt erstellt etc.
Ich wäre sehr dankbar, wenn mir jemand sagen könnte, was ich vergessen habe
Gruß,
badday
ich versuche gerade eine Datei gezippt von einem Server herunterzuladen mit libcurl. Folgendes kleine Programm zeigt, was ich mache:
Code:
#include <iostream>
#include <string>
#include <fstream>
#include <stdio.h>
#include "curl.h"
#include "types.h"
#include "easy.h"
#define HAVE_LIBZ
size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream)
{
size_t written = fwrite(ptr, size, nmemb, stream);
return written;
}
int main(int argc, char* argv[])
{
std::string targetaddress = "http://exampleaddress.de/test.txt";
std::string filename = "./test.txt";
CURL *curl;
FILE *fp;
CURLcode res;
curl = curl_easy_init();
if (curl)
{
fp = fopen(filename.c_str(),"wb");
struct curl_slist *headers=NULL;
headers = curl_slist_append(headers, "ACCEPT_ENCODING: gzip");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_ENCODING, "gzip");
curl_easy_setopt(curl, CURLOPT_URL, targetaddress.c_str());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
fclose(fp);
}
}
Allerdings wird es nicht komprimiert geschickt. Als res bekomme ich CURLE_OK zurück, die Datei wird auch korrekt erstellt etc.
Ich wäre sehr dankbar, wenn mir jemand sagen könnte, was ich vergessen habe

Gruß,
badday