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 <C_CkHttp.h>
BOOL http_AbortCheck()
{
return FALSE;
}
BOOL http_PercentDone(int percentDone)
{
printf("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) {
return TRUE;
}
return FALSE;
}
void http_ProgressInfo(const char *name, const char *value)
{
printf("%s: %s\n",name,value);
}
void ChilkatSample(void)
{
BOOL success;
HCkHttp http;
BOOL (*fnhttpAbortCheck)() = http_AbortCheck;
BOOL (*fnhttpPercentDone)(int percentDone) = http_PercentDone;
void (*fnhttpProgressInfo)(const char *name, const char *value) = http_ProgressInfo;
const char *localFilePath;
success = FALSE;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http = CkHttp_Create();
CkHttp_setAbortCheck(http, fnhttpAbortCheck);
CkHttp_setPercentDone(http, fnhttpPercentDone);
CkHttp_setProgressInfo(http, fnhttpProgressInfo);
// Set a heartbeat in milliseconds
CkHttp_putHeartbeatMs(http,200);
// Download a file...
localFilePath = "qa_output/Python-3.4.4.tar.xz";
success = CkHttp_Download(http,"https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tar.xz",localFilePath);
if (success == FALSE) {
printf("%s\n",CkHttp_lastErrorText(http));
CkHttp_Dispose(http);
return;
}
printf("OK!\n");
CkHttp_Dispose(http);
}