C++
C++
HTTP Download with Progress Event Callbacks
See more HTTP Examples
Downloads a file via HTTP or HTTPS and uses event callbacks to monitor progress.Chilkat C++ Downloads
#include <CkHttp.h>
#include <CkHttpProgress.h>
class httpProgress : public CkHttpProgress {
public:
httpProgress() { }
virtual ~httpProgress() { }
void AbortCheck(bool *abort) {
// Application code goes here.
}
void PercentDone(int percentDone, bool *abort) {
std::cout << "Percent Done: " << percentDone << "\r\n";
// Explicitly abort at 25% or greater.
// Remove this to allow for the HTTP download to run to completion.
if (percentDone > 25) {
*abort = true;
}
}
void ProgressInfo(const char *name, const char *value) {
std::cout << name << ": " << value << "\r\n";
}
};
void ChilkatSample(void)
{
bool success = false;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkHttp http;
httpProgress http_progress;
http.put_EventCallbackObject(&http_progress);
// Set a heartbeat in milliseconds
http.put_HeartbeatMs(200);
// Download a file...
const char *localFilePath = "qa_output/Python-3.4.4.tar.xz";
success = http.Download("https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tar.xz",localFilePath);
if (success == false) {
std::cout << http.lastErrorText() << "\r\n";
return;
}
std::cout << "OK!" << "\r\n";
}