bool GUIEngine::downloadFile(std::string url, std::string target) { #if USE_CURL std::ofstream target_file(target.c_str(), std::ios::out | std::ios::binary); if (!target_file.good()) { return false; } HTTPFetchRequest fetch_request; HTTPFetchResult fetch_result; fetch_request.url = url; fetch_request.caller = HTTPFETCH_SYNC; fetch_request.timeout = g_settings->getS32("curl_file_download_timeout"); httpfetch_sync(fetch_request, fetch_result); if (!fetch_result.succeeded) { return false; } target_file << fetch_result.data; return true; #else return false; #endif }
bool GUIEngine::downloadFile(std::string url,std::string target) { #if USE_CURL bool retval = true; FILE* targetfile = fopen(target.c_str(),"wb"); if (targetfile) { HTTPFetchRequest fetchrequest; HTTPFetchResult fetchresult; fetchrequest.url = url; fetchrequest.caller = HTTPFETCH_SYNC; httpfetch_sync(fetchrequest,fetchresult); if (fetchresult.succeeded) { if (fwrite(fetchresult.data.c_str(),1,fetchresult.data.size(),targetfile) != fetchresult.data.size()) { retval = false; } } else { retval = false; } fclose(targetfile); } else { retval = false; } return retval; #else return false; #endif }
Json::Value fetchJsonValue(const std::string &url, std::vector<std::string> *extra_headers) { HTTPFetchRequest fetch_request; HTTPFetchResult fetch_result; fetch_request.url = url; fetch_request.caller = HTTPFETCH_SYNC; if (extra_headers != NULL) fetch_request.extra_headers = *extra_headers; httpfetch_sync(fetch_request, fetch_result); if (!fetch_result.succeeded) { return Json::Value(); } Json::Value root; Json::Reader reader; std::istringstream stream(fetch_result.data); if (!reader.parse(stream, root)) { errorstream << "URL: " << url << std::endl; errorstream << "Failed to parse json data " << reader.getFormattedErrorMessages(); if (fetch_result.data.size() > 100) { errorstream << "Data (" << fetch_result.data.size() << " bytes) printed to warningstream." << std::endl; warningstream << "data: \"" << fetch_result.data << "\"" << std::endl; } else { errorstream << "data: \"" << fetch_result.data << "\"" << std::endl; } return Json::Value(); } return root; }
bool GUIEngine::downloadFile(std::string url,std::string target) { #if USE_CURL std::ofstream targetfile(target.c_str(), std::ios::out | std::ios::binary); if (!targetfile.good()) { return false; } HTTPFetchRequest fetchrequest; HTTPFetchResult fetchresult; fetchrequest.url = url; fetchrequest.caller = HTTPFETCH_SYNC; httpfetch_sync(fetchrequest, fetchresult); if (fetchresult.succeeded) { targetfile << fetchresult.data; } else { return false; } return true; #else return false; #endif }