2016-12-12 150 views
2

所有代码均可正常工作,问题在于身份验证失败,尽管用户名和密码是100%正确的,因此不确定是否有办法通过登录名和密码,并得到了用户认证IOS - 使用REST API进行基本身份验证 - SSL - AFNetworking 3.0

NSString *urlString = @"URL"; 

     NSMutableArray * keyStrings = [NSMutableArray new]; 
     NSMutableArray * valueStrings = [NSMutableArray new]; 
     [keyStrings addObject:@"user"]; 
     [valueStrings addObject:@"abc"]; 
     [keyStrings addObject:@"password"]; 
     [valueStrings addObject:@"12345"]; 

     NSDictionary * requestDict = [[NSDictionary alloc] initWithObjects:valueStrings forKeys:keyStrings]; 
     AFHTTPSessionManager* manager = [AFHTTPSessionManager manager]; 

     manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 

     manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/xml"]; 
     manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"]; 
     manager.securityPolicy.allowInvalidCertificates = YES; 
     manager.securityPolicy.validatesDomainName = NO; 

回答

1

我猜你打算使用HTTP Basic Authentication在这种情况下,你应该使用Authorization头字段,而不是通过纯文本的用户名和密码在请求的参数内(我第一次尝试使用REST API进行基本认证时犯了这个错误)。

您需要将其添加到AFHTTPRequestSerializer的标题中,您可以使用setAuthorizationHeaderFieldWithUsername:password: method或手动构建标题字段值并使用setValue:forHTTPHeaderField: method设置标题字段值。