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

C#
// AbortCheck callback method.
private void http_OnAbortCheck(object sender, Chilkat.AbortCheckEventArgs args)
    {
    
    }

// PercentDone callback method.
private void http_OnPercentDone(object sender, Chilkat.PercentDoneEventArgs args)
    {
    int percentDone = args.PercentDone;
    Debug.WriteLine("Percent Done: " + Convert.ToString(percentDone));
    // Explicitly abort at 25% or greater.
    // Remove this to allow for the HTTP download to run to completion.
    if (percentDone > 25) {
        args.Abort = true;
    }
    }

// ProgressInfo callback method.
private void http_OnProgressInfo(object sender, Chilkat.ProgressInfoEventArgs args)
    {
    string name = args.Name;
    string value = args.Value;
    Debug.WriteLine(name + ": " + value);
    }

private void ChilkatExample()
    {
    bool success = false;

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

    Chilkat.Http http = new Chilkat.Http();
    http.OnAbortCheck += http_OnAbortCheck;
    http.OnPercentDone += http_OnPercentDone;
    http.OnProgressInfo += http_OnProgressInfo;

    // Set a heartbeat in milliseconds 
    http.HeartbeatMs = 200;

    // Download a file...
    string 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) {
        Debug.WriteLine(http.LastErrorText);
        return;
    }

    Debug.WriteLine("OK!");

    }