Ios AF2自定义会话管理器

Ios AF2自定义会话管理器,ios,json,serialization,afnetworking-2,Ios,Json,Serialization,Afnetworking 2,我希望会话管理器具有基本url,而不是使用标准: [AFHTTPSessionManager manager]; 这是100%的工作,我已经测试过了,我正在尝试我自己的子类 因此,我对AFHTTPSessionManager进行了子类化,并创建了共享实例: + (MySessionManager *)sharedModel { static MySessionManager *sharedInstance = nil; @synchronized(self) {

我希望会话管理器具有基本url,而不是使用标准:

[AFHTTPSessionManager manager];
这是100%的工作,我已经测试过了,我正在尝试我自己的子类

因此,我对AFHTTPSessionManager进行了子类化,并创建了共享实例:

+ (MySessionManager *)sharedModel {
    static MySessionManager *sharedInstance = nil;
    @synchronized(self) {
        if (sharedInstance == nil) {
            sharedInstance = [[self alloc] initWithBaseURL:[NSURL URLWithString:kMyBaseURL]];
        }
    }

    return sharedInstance;
}

- (id)initWithBaseURL:(NSURL *)url {
    self = [super initWithBaseURL:url];
    if (self) {
        // see description below
    }

    return self;
}
我已经检查了AFHTTPSessionManager的实现,它如下所示:

+ (instancetype)manager {
    return [[[self class] alloc] initWithBaseURL:nil];
}
所以事实上,我自己的子类也应该以同样的方式工作。。但事实并非如此

我获取状态代码200,请求失败:不可接受的内容类型:text/html。但是我确信它是json,因为使用AFHTTPSessionManager,一切都可以正常工作,并显示为text/json。怎么了,我做错了什么

--编辑--

我还尝试在initWithBaseURL中设置响应/请求序列化程序,但没有帮助

self.requestSerializer = [AFHTTPRequestSerializer serializer];
self.responseSerializer = [AFJSONResponseSerializer serializer];
--编辑--

我也尝试过使用这些配置,但都失败了400401

[self.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[self.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[self.responseSerializer setAcceptableContentTypes:[NSSet setWithObjects:@"application/json", nil]];

再次说明:当使用manager sharedInstance时,根本没有问题-我处于成功区,可以解析响应。

好吧,整个问题是kMyBaseURL是:

#define kMGBaseURL @"http://example.com/api"
而不是

#define kMGBaseURL @"http://example.com/api/"
后来我把链接当作@/某物而不是@某物