Objective c 如何将NSURLCredential传递给NSURLSession?
我对此有点困惑。我有这个方法Objective c 如何将NSURLCredential传递给NSURLSession?,objective-c,nsurlsession,nsurlcredential,Objective C,Nsurlsession,Nsurlcredential,我对此有点困惑。我有这个方法 -(BOOL)verifyAuth: (NSString*)username forPassword:(NSString*)password { NSURLSession *session = [NSURLSession sharedSession]; NSURLCredential *creds = [NSURLCredential credentialWithUser:username password:password persistence:
-(BOOL)verifyAuth: (NSString*)username forPassword:(NSString*)password
{
NSURLSession *session = [NSURLSession sharedSession];
NSURLCredential *creds = [NSURLCredential credentialWithUser:username password:password persistence:NSURLCredentialPersistenceForSession];
[session dataTaskWithURL:MALAuthVerifyURL completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
{
NSLog(@"%@",data);
}];
return YES;
}
如何将凭据传递给NSURLSession对象?苹果的文档说:
“创建NSURLCredential对象后:
对于NSURLSession,使用提供的完成处理程序块将对象传递给身份验证质询的发送方。“
但我不确定这到底意味着什么。我找不到这种用法的任何例子
谢谢。您需要实现另一个委托方法,
-URLSession:task:didReceiveChallenge:challenge:completionHandler:
HTTP基本身份验证(NSURLAuthenticationMethodHTTPBasic)需要用户名和密码。提示用户输入必要的信息,并使用credentialWithUser:password:persistence:创建一个NSURLCredential对象
创建NSURLCredential对象后:
- 对于NSURLSession,使用提供的完成处理程序块将对象传递给身份验证质询的发送方
- 对于NSURLConnection和NSURLDownload,将对象传递给身份验证质询的发件人,并使用useCredential:forAuthenticationChallenge:
也许这会有帮助。谢谢你的回复。如果您不等待服务器的质询,而是在每个请求中传递username:password,那么基本HTTP授权如何?@Joseph我的猜测是:根据您自己的NSURLSessionConfiguration创建会话,该配置具有可以设置的URLCredentialStorage属性。用nsurauthenticationmethodhttpbasic设置一个凭证/保护空间,我想它会用它来代替发出质询回调。虽然我还没试过这个。。。