Я хочу перенаправить вывод запроса скручивания в файл, но то, что я сделал, не работает.Может кто-нибудь помочь мне понять, что я делаю неправильно?
Я искал каждую тему, которая могла бы дать ответ на мою проблему, но, к сожалению, все, что я пробовал, просто не работает.
Я использовал примеры из официальной документации и другие коды, предоставленные пользователями, но у меня ничего не работает: выходной файл остается пустым.
Вот последний код, который я пробовал:
std::string filename = "answer.out";
curlpp::Cleanup cleaner;
curlpp::Easy request;
std::list<std::string> header;
header.push_back("Connection: keep-alive");
header.push_back("Upgrade-Insecure-Requests: 1");
header.push_back("User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36 OPR/60.0.3255.83");
header.push_back("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
header.push_back("Accept-Encoding: gzip, deflate");
header.push_back("Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7");
header.push_back("Cookie: __test=4558ed530ffeb24f11c7d1812f85b68d; PHPSESSID=efb4f11bd458ed43cefb51be871dbb73");
request.setOpt(new curlpp::options::HttpHeader(header));
curlpp::options::WriteFunctionCurlFunction
myFunction(WriteCallback);
FILE *file = stdout;
if(filename != "")
{
file = fopen(filename.c_str(), "wb");
if(file == NULL)
{
fprintf(stderr, "%s/n", strerror(errno));
}
}
curlpp::OptionTrait<void *, CURLOPT_WRITEDATA>
myData(file);
request.setOpt(myFunction);
request.setOpt(myData);
curlpp::Forms formParts;
formParts.push_back(new curlpp::FormParts::Content("pseudo_connect", "myusername"));
formParts.push_back(new curlpp::FormParts::Content("pass_connect", "mypassword"));
request.setOpt(new curlpp::options::HttpPost(formParts));
request.setOpt(new curlpp::options::Url("http://fpvp.fiddlecomputers.fr?action=connect"));
request.setOpt(new curlpp::options::Verbose(false));
request.setOpt(new curlpp::options::Encoding(""));
request.perform();
Функция WriteCallBack:
size_t WriteCallback(char* ptr, size_t size, size_t nmemb, void *f)
{
FILE *file = (FILE *)f;
return fwrite(ptr, size, nmemb, file);
};
Я не получаю никаких ошибок, кроме выходного файла (т. Е. Ответа.out) остается пустым.Заранее спасибо за помощь.