Sample code for 30+ languages & platforms
Unicode 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 Unicode C++ Downloads

Unicode C++
#include <CkHttpW.h>

#include <CkHttpProgressW.h>

class httpProgress : public CkHttpProgressW {

  public:
  httpProgress() { }
  virtual ~httpProgress() { }

  void AbortCheck(bool *abort) {
    // Application code goes here.
  }

  void PercentDone(int percentDone, bool *abort) {
    wprintf(L"Percent Done: %d\n",percentDone);
    // 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 wchar_t *name, const wchar_t *value) {
    wprintf(L"%s: %s\n",name,value);
  }

};

void ChilkatSample(void)
    {
    bool success = false;

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    CkHttpW http;
    httpProgress http_progress;
    http.put_EventCallbackObject(&http_progress);

    // Set a heartbeat in milliseconds 
    http.put_HeartbeatMs(200);

    // Download a file...
    const wchar_t *localFilePath = L"qa_output/Python-3.4.4.tar.xz";
    success = http.Download(L"https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tar.xz",localFilePath);
    if (success == false) {
        wprintf(L"%s\n",http.lastErrorText());
        return;
    }

    wprintf(L"OK!\n");
    }