Using std::ofstream, I give the file a name with the required ext:
sf::Http http;
http.setHost("http://assets.ign.com/");
sf::Http::Request request;
request.setUri("/videos/zencoder/640/d092914f4631a98554ac9849165b5ee9-500000-1390433049-w.mp4");
sf::Http::Response response = http.sendRequest(request);
std::string data = response.getBody();
std::ofstream fout("example.mp4");
fout << data;
fout.close();
I have tried this with .flv and .mp4 videos from various websites and get the same result - a file with extra bytes that doesn't play.