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://连接。

Interesting Posts