xik*_*may 12 objective-c ios afnetworking rubymotion
我是Objective-c的新手,我在使用AFNetworking时遇到了困难.
所以问题是我想向服务器发一个简单的POST请求,该服务器会给我发回盐.我做一个简单的应用程序,以测试我的请求,但我不明白为什么我得到错误代码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);
}];
}
Run Code Online (Sandbox Code Playgroud)
我已将此代码链接到一个调用此函数的简单Button.
我有另一个应用程序,在红宝石运动中,这项功能的工作被罚款我可以得到没有任何错误的响应.但是使用这个简单的应用程序,我无法做任何请求,他们都返回此错误代码999.
错误:错误域= NSURLErrorDomain代码= -999"已取消"UserInfo = {NSErrorFailingURLKey = https:// localhost:4443/api/v0/login/salt,NSLocalizedDescription =已取消,NSErrorFailingURLStringKey = https:// localhost:4443/api/v0/login/salt }
所以我真的很想知道我做错了什么,有谁可以帮我这个?谢谢
编辑:
这是在经理中保存经理还是做错事的好方法?如果这是好方法,这似乎不起作用谢谢你的帮助
.h文件
@property (nonatomic, retain) AFHTTPSessionManager *session;
Run Code Online (Sandbox Code Playgroud)
.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);
}];
Run Code Online (Sandbox Code Playgroud)
小智 20
在我的情况下,iOS 10 SDK导致AFNetworking错误代码为-999.如果您尝试访问具有SSL的服务器并且您不想检查它,请为Afnetworking添加一些隐私策略
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
securityPolicy.allowInvalidCertificates = YES;
[securityPolicy setValidatesDomainName:NO];
Run Code Online (Sandbox Code Playgroud)
Ewa*_*lor 10
这是错误-999,而不是999.那就是NSURLErrorCancelled.您的请求已被取消,然后才能完成.
查看您的代码,您不会保留AFHTTPSessionManager *manager任何地方.这意味着经理将在+simpleRequest退货后立即处理.我猜这是取消你的请求的原因.
您需要保存管理器,以使其在请求的整个持续时间内都存在.将它保存在某个地方的财产中.
就我而言,iOS 9 SDK 的“应用程序传输安全性”导致AFNetworking 错误代码:-999。如果您尝试访问没有 SSL 的服务器,请添加密钥,如下面的屏幕截图所示。
| 归档时间: |
|
| 查看次数: |
28052 次 |
| 最近记录: |