Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Swift) Streaming Decrypt HTTP ResponseIf the an encrypted file was previously uploaded, this example demonstrates how to download and decrypt in a streaming way.
func chilkatTest() { // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. let rest = CkoRest()! var bTls: Bool = true var port: Int = 443 var bAutoReconnect: Bool = true var success: Bool = rest.connect("chilkatdownload.com", port: port, tls: bTls, autoReconnect: bAutoReconnect) // Send the request to download a file. success = rest.sendReqNoBody("GET", uriPath: "/9.5.0.83/chilkat-9.5.0-python-3.8-x64.zip") if success != true { print("\(rest.lastErrorText!)") return } // Read the response header. var responseStatusCode: Int = rest.readResponseHeader().intValue if responseStatusCode < 0 { print("\(rest.lastErrorText!)") return } print("Response status code = \(responseStatusCode)") // We expect a 200 response status if the JPG data is coming. // Otherwise, we'll get a string response body with an error message(or no response body). if responseStatusCode != 200 { var errResponse: String? = rest.readRespBodyString() if rest.lastMethodSuccess != true { print("\(rest.lastErrorText!)") } else { print("\(errResponse!)") } return } // Create an object for decrypting. // This example will use "none" for the encryption algorithm, which means it's just a pass-through. // Typically you would set the decrypt properties, such as secret key, IV, key length, padding scheme, cipher mode.. let crypt = CkoCrypt2()! crypt.cryptAlgorithm = "none" // The following settings are ignored in this test because our CryptAlgorithm is "none". // However, if you were truly decrypting, you might set CryptAlgorithm = "aes". crypt.cipherMode = "cbc" crypt.keyLength = 128 crypt.setEncodedKey("000102030405060708090A0B0C0D0E0F", encoding: "hex") crypt.setEncodedIV("000102030405060708090A0B0C0D0E0F", encoding: "hex") let receiveStream = CkoStream()! // The decryptStream's source will be the receiveStream. let decryptStream = CkoStream()! // The decrypt stream's sink will be a file. decryptStream.sinkFile = "qa_output/chilkat-9.5.0-python-3.8-x64.zip" decryptStream.setSourceStream(receiveStream) // Create and run a background async task to decrypt incoming data and write to a file. var decryptStreamTask: CkoTask? = crypt.decryptStreamAsync(decryptStream) success = decryptStreamTask!.run() success = rest.readRespBodyStream(receiveStream, autoSetStreamCharset: true) if success != true { print("\(rest.lastErrorText!)") return } print("Successfully received the .zip file.") } |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.