Sample code for 30+ languages & platforms
Swift

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 Swift Downloads

Swift
class httpProgress : CkoHttpProgress {

    override func AbortCheck(abort: UnsafeMutablePointer<ObjCBool>) {
        abort.memory = false
        
    }

    override func PercentDone(pctDone: NSNumber!, abort: UnsafeMutablePointer<ObjCBool>) {
        abort.memory = false
        let percentDone: Int = pctDone
        print("Percent Done: \(percentDone)")
        // Explicitly abort at 25% or greater.
        // Remove this to allow for the HTTP download to run to completion.
        if percentDone > 25 {
            abort.memory = true
        }
    }

    override func ProgressInfo(name: String!, value: String!) {
        print("\(name!): \(value!)")
    }

}


func chilkatTest() {
    var success: Bool = false

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

    let http = CkoHttp()!
    let http_progress = httpProgress()
    http.setEventCallbackObject(http_progress)

    // Set a heartbeat in milliseconds 
    http.heartbeatMs = 200

    // Download a file...
    var localFilePath: String? = "qa_output/Python-3.4.4.tar.xz"
    success = http.download(url: "https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tar.xz", saveToPath: localFilePath)
    if success == false {
        print("\(http.lastErrorText!)")
        return
    }

    print("OK!")

}