【问题标题】:AFNetworking 2 NSURLErrorDomainAFNetworking 2 NSURLErrorDomain
【发布时间】: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


【解决方案1】:

据我所知,AFHTTPRequestOperationManager 的默认 AFSecurityPolicy 为 AFSSLPinningModeNone。

在我看来这是这两个电话之间的唯一区别。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    相关资源
    最近更新 更多