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.