Instance Method

downloadTask(with:)

Creates a download task that retrieves the contents of a URL based on the specified URL request object and saves the results to a file.

Declaration

func downloadTask(with request: URLRequest) -> URLSessionDownloadTask

Parameters

request

A URL request object that provides the URL, cache policy, request type, body data or body stream, and so on.

Return Value

The new session download task.

Discussion

By creating a task based on a request object, you can tune various aspects of the task’s behavior, including the cache policy and timeout interval.

After you create the task, you must start it by calling its resume() method. The task calls methods on the session’s delegate to provide you with progress notifications, the location of the resulting temporary file, and so on.

See Also

Adding Download Tasks to a Session

func downloadTask(with: URL) -> URLSessionDownloadTask

Creates a download task that retrieves the contents of the specified URL and saves the results to a file.

func downloadTask(with: URL, completionHandler: (URL?, URLResponse?, Error?) -> Void) -> URLSessionDownloadTask

Creates a download task that retrieves the contents of the specified URL, saves the results to a file, and calls a handler upon completion.

func downloadTask(with: URLRequest, completionHandler: (URL?, URLResponse?, Error?) -> Void) -> URLSessionDownloadTask

Creates a download task that retrieves the contents of a URL based on the specified URL request object, saves the results to a file, and calls a handler upon completion.

func downloadTask(withResumeData: Data) -> URLSessionDownloadTask

Creates a download task to resume a previously canceled or failed download.

func downloadTask(withResumeData: Data, completionHandler: (URL?, URLResponse?, Error?) -> Void) -> URLSessionDownloadTask

Creates a download task to resume a previously canceled or failed download and calls a handler upon completion.

class URLSessionDownloadTask

A URL session task that stores downloaded data to file.

protocol URLSessionDownloadDelegate

A protocol defining methods that URLSession instances call on their delegates to handle task-level events specific to download tasks.