AFNetworking请求错误代码999
我是新来的Objective-C,我很难与AFNetworking。
所以,事情是我想做一个简单的POST请求到一个服务器,谁会送我一个盐。 我做一个简单的应用程序,为了testing我的请求,但我不明白为什么我得到错误代码999。
这里是我的代码示例。
+ (void)simpleRequest; { NSURL *mailserver = [NSURL URLWithString:@"https://localhost:4443/"]; AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]initWithBaseURL:mailserver]; manager.securityPolicy.allowInvalidCertificates = TRUE; manager.responseSerializer = [AFJSONResponseSerializer serializer]; manager.requestSerializer = [AFJSONRequestSerializer serializer]; NSDictionary *parameters = @{@"username": @"testtest"}; [manager POST:@"api/v0/login/salt" parameters:parameters success:^(NSURLSessionDataTask *operation, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(NSURLSessionDataTask *operation, NSError *error) { NSLog(@"Error: %@", error); }]; }
我把这个代码链接到一个调用这个函数的简单button。
我有另一个应用程序,在ruby运动这是罚款与这个function,我可以得到没有任何错误的答复。 但有了这个简单的应用程序,我不能做任何请求,他们都返回了这个错误代码999。
错误:Error Domain = NSURLErrorDomain Code = -999“cancel”UserInfo = {NSErrorFailingURLKey = https:// localhost:4443 / api / v0 / login / salt ,NSLocalizedDescription = cancel,NSErrorFailingURLStringKey = https:// localhost:4443 / api / v0 / login / salt }
所以我真的很想知道我在做什么错,任何人都可以帮助我呢? 谢谢
编辑:
把经理救了出去还是我做错了? 如果这是好的方法,这似乎不起作用谢谢你的帮助
.h文件
@property (nonatomic, retain) AFHTTPSessionManager *session;
.m文件
@synthesize session; - (IBAction)log:(id)sender { NSURL *mailserver = [NSURL URLWithString:@"https://localhost:4443/"]; self.session = [[AFHTTPSessionManager alloc]initWithBaseURL:mailserver]; self.session.securityPolicy.allowInvalidCertificates = TRUE; self.session.responseSerializer = [AFJSONResponseSerializer serializer]; self.session.requestSerializer = [AFJSONRequestSerializer serializer]; NSDictionary *parameters = @{@"username": @"testtest"}; [self.session POST:@"api/v0/login/salt" parameters:parameters success:^(NSURLSessionDataTask *operation, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(NSURLSessionDataTask *operation, NSError *error) { NSLog(@"Error: %@", error); }];
在我的情况下,iOS 9 SDK的“ 应用程序传输安全性 ”导致AFNetworking 错误代码:-999 。 如果你正在尝试访问一个没有SSL添加键的服务器,如下面的屏幕截图。
在我的情况下iOS 10 SDK的原因AFNetworking错误代码:-999。 如果您尝试访问具有SSL的服务器,并且您不希望将其检出,请将一些隐私策略添加到networking交互
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone]; securityPolicy.allowInvalidCertificates = YES; [securityPolicy setValidatesDomainName:NO];
这是错误-999,而不是999.这是NSURLErrorCancelled
。 您的请求在完成之前已被取消。
看着你的代码,你并没有在任何地方保留AFHTTPSessionManager *manager
。 这意味着只要+simpleRequest
返回,pipe理者就会被处置。 我猜这就是取消你的请求。
您需要保存pipe理器,以便在整个请求期间保持不变。 将它保存在某个地方的某个地方。
我注意到你的API端点指向一个安全的连接:
http S :// localhost:4443 / api / v0 / login / salt
只是为了以防万一,也许它重复你的情况。
就我而言, 这是 APIpipe理器代码中的一个错字 。 该部分可以说是与应用程序传输安全设置相关联的。
只是将受保护的协议从httpS://
更改为http://
,并且错误:
NSURLErrorDomain代码= -999“取消”
走了, 这一切工作 !
+还有,如果你有类似的问题。 请务必与为您的应用程序处理服务器或APIconfiguration的后端专家进行讨论 。 这意味着服务器没有有效的安全证书。 也许你仍然需要一个安全的连接。 或者这个专家可以再次configuration一切从http://
到httpS://
,我不知道(没有检查)是否这将再次工作,当你在代码中已经使用一个不安全的http://
连接。