【发布时间】:2013-11-07 10:23:51
【问题描述】:
我正在尝试使用 AFNetworking 2,但失败了。
按照建议,我做了以下事情:
#import "AFHTTPSessionManager.h"
@interface OperationManager : AFHTTPRequestOperationManager
+ (instancetype)sharedClient;
@end
@implementation OperationManager
+ (instancetype)sharedClient {
static OperationManager *_sharedClient = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_sharedClient = [[OperationManager alloc] initWithBaseURL:[NSURL URLWithString:kBaseURL]];
[_sharedClient setSecurityPolicy:[AFSecurityPolicy policyWithPinningMode:AFSSLPinningModePublicKey]];
});
return _sharedClient;
}
@end
这是我尝试使用它的方式:
OperationManager * manager = [OperationManager sharedClient];
NSString * link = kAuth;
// AFHTTPRequestOperationManager* manager =[AFHTTPRequestOperationManager manager];
// NSString * link = [kBaseURL stringByAppendingString:kAuth];
[manager GET:link parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
这些常量来自示例项目:
static NSString * const kBaseURL = @"https://alpha-api.app.net/";
static NSString * const kAuth = @"stream/0/posts/stream/global";
当我运行这段代码时,我得到了:
Error: Error Domain=NSURLErrorDomain Code=-1012 "操作 无法完成。 (NSURLErrorDomain 错误 -1012。)” 用户信息=0x15d97e50 {NSErrorFailingURLKey=https://alpha-api.app.net/stream/0/posts/stream/global, NSErrorFailingURLStringKey=https://alpha-api.app.net/stream/0/posts/stream/global}
如果我用 OperationManager 和它的链接评论 2 行,并用它的链接取消注释 AFHTTPRequestOperationManager,一切正常。
从昨天早上开始,我一直在调试和挖掘答案。
【问题讨论】:
-
当你对它进行 NSLog 时,链接设置是什么?我想看看 NSString *link = kAuth 的值
-
当然,它的 /stream/0/posts/stream/global。当我进入 GET:param:succ:fail 方法时,我们可以看到最终的 URL 是正确的 - alpha-api.app.net/stream/0/posts/stream/global,因为通过单例发起程序我分配了 baseURL,所以它确实存在。
标签: ios objective-c afnetworking-2