IOS - 使用 REST 的基本身份验证 API - SSL - AFNetworking 3.0
IOS - Basic Authentication with a REST API - SSL - AFNetworking 3.0
代码一切正常,问题是它说身份验证失败,虽然用户名和密码是 100% 正确的,所以不确定是否有办法传递登录名和密码并让用户通过身份验证
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;
我猜您打算使用 HTTP Basic Authentication,在这种情况下,您应该使用 Authorization
header 字段,而不是在其中以纯文本形式传递用户名和密码请求的参数(我第一次尝试使用 REST API 进行基本身份验证时犯了这个错误)。
您需要将其添加到 AFHTTPRequestSerializer
的 header 中,您可以使用 setAuthorizationHeaderFieldWithUsername:password:
method or by constructing the header field value manually and setting the header field value using the setValue:forHTTPHeaderField:
method.
代码一切正常,问题是它说身份验证失败,虽然用户名和密码是 100% 正确的,所以不确定是否有办法传递登录名和密码并让用户通过身份验证
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;
我猜您打算使用 HTTP Basic Authentication,在这种情况下,您应该使用 Authorization
header 字段,而不是在其中以纯文本形式传递用户名和密码请求的参数(我第一次尝试使用 REST API 进行基本身份验证时犯了这个错误)。
您需要将其添加到 AFHTTPRequestSerializer
的 header 中,您可以使用 setAuthorizationHeaderFieldWithUsername:password:
method or by constructing the header field value manually and setting the header field value using the setValue:forHTTPHeaderField:
method.