Le problème c'est ça :
FILE *save = fopen("logo.jpg", "w");
fprintf(save, "%s", Body.c_str());
fclose(save);
Deux erreurs :
- tu utilises fprintf, qui est fait pour sortir du texte, alors que tu as un tableau d'octets bruts ("body" n'est pas
réellement une chaîne de caractères)
- tu utilises des fonctions C de gestion de chaînes de caractères, qui s'arrêtent donc au premier 0 rencontré (il doit y en avoir un paquet dans l'image téléchargée)
Solution :
- utiliser du vrai C++
- ne pas traiter "body" comme une chaîne de caractères, mais comme un tableau d'octets
std::ofstream file("logo.jpg", std::ios::binary);
file.write(Body.c_str(), Body.size());