A protocol defining methods that URL session instances call on their delegates to handle session-level events, like session life cycle changes.


protocol URLSessionDelegate


In addition to the methods defined in this protocol, most delegates should also implement some or all of the methods in the URLSessionTaskDelegate, URLSessionDataDelegate, and URLSessionDownloadDelegate protocols to handle task-level events. These include events like the beginning and end of individual tasks, and periodic progress updates from data or download tasks.


Handling Session Life Cycle Changes

func urlSession(URLSession, didBecomeInvalidWithError: Error?)

Tells the URL session that the session has been invalidated.

func urlSessionDidFinishEvents(forBackgroundURLSession: URLSession)

Tells the delegate that all messages enqueued for a session have been delivered.

Handling Authentication Challenges

func urlSession(URLSession, didReceive: URLAuthenticationChallenge, completionHandler: (URLSession.AuthChallengeDisposition, URLCredential?) -> Void)

Requests credentials from the delegate in response to a session-level authentication request from the remote server.

enum URLSession.AuthChallengeDisposition

Constants passed by session or task delegates to the provided continuation block in response to an authentication challenge.


Inherits From

See Also

Working with a Delegate

var delegate: URLSessionDelegate?

The delegate assigned when this object was created.

protocol URLSessionTaskDelegate

A protocol defining methods that URL session instances call on their delegates to handle task-level events.

var delegateQueue: OperationQueue

The operation queue provided when this object was created.