A protocol that delegates of a URL connection implement to receive status about and provide feedback to the connection object.


@protocol NSURLConnectionDelegate


Delegates of NSURLConnection objects should implement either the NSURLConnectionDataDelegate or NSURLConnectionDownloadDelegate protocol in addition to the NSURLConnectionDelegate protocol. Specifically:

Delegates that wish to perform custom authentication handling should implement the connection:willSendRequestForAuthenticationChallenge: method, which is the preferred mechanism for responding to authentication challenges. (See NSURLAuthenticationChallenge for more information on authentication challenges.) If connection:willSendRequestForAuthenticationChallenge: is not implemented, the older, deprecated methods connection:canAuthenticateAgainstProtectionSpace:, connection:didReceiveAuthenticationChallenge:, and connection:didCancelAuthenticationChallenge: are called instead.

The connection:didFailWithError: method is called at most once if an error occurs during the loading of a resource. The connectionShouldUseCredentialStorage: method is called once, just before the loading of a resource begins.


Connection Authentication

- connection:willSendRequestForAuthenticationChallenge:

Tells the delegate that the connection will send a request for an authentication challenge.

- connection:canAuthenticateAgainstProtectionSpace:

Sent to determine whether the delegate is able to respond to a protection space’s form of authentication.

- connection:didCancelAuthenticationChallenge:

Sent when a connection cancels an authentication challenge.

- connection:didReceiveAuthenticationChallenge:

Sent when a connection must authenticate a challenge in order to download its request.

- connectionShouldUseCredentialStorage:

Sent to determine whether the URL loader should use the credential storage for authenticating the connection.

Connection Completion

- connection:didFailWithError:

Sent when a connection fails to load its request successfully.

See Also

URL Connection


An object that enables you to start and stop URL requests.


A protocol that most delegates of a URL connection implement to receive data associated with the connection.


A protocol that delegates of a URL connection created with Newsstand Kit implement to receive data associated with a download.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software