Whether the web service you're working with is using HTTP Basic Auth or HTTP Digest Auth, as long as you're using NSURLConnection, NSURLCredential has you covered.
Apple have made it very easy for us developers. All we have to do is implement a delegate method.
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
if ([challenge previousFailureCount] < 0)
{
[[challenge sender] cancelAuthenticationChallenge:challenge];
return;
}
NSURLCredential *credential = [NSURLCredential credentialWithUser:aUsername
password:aPassword
persistence:NSURLCredentialPersistenceForSession];
[[challenge sender] useCredential:credential forAuthenticationChallenge:challenge];
}
And that's it. NSURLCredential will handle both HTTP Basic and Digest auth for you, including all the ugly base64 encoding and MD5 hashing.