我正在编写一个简单的客户端服务器应用程序,并且必须将 AFNetworking 更新到 2.0 版。我的问题是即使我从服务器返回 403,操作管理器总是会进入成功块。
这是我从我的 Django 服务器返回的:
return HttpResponseForbidden(content_type="application/json")
我像这样扩展了 OperationManager:
User : AFHTTPRequestOperationManager
这就是我的初始化方式:
-(id)initWithBaseURL:(NSURL *)url
{
self = [super initWithBaseURL:url];
if (self)
{
[self setResponseSerializer:[AFJSONResponseSerializer serializer]];
[self setRequestSerializer:[AFHTTPRequestSerializer serializer]];
[self.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
}
return self;
}
我的获取请求看起来像:
[self GET:path parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Get request success.");
completionBlock(responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Get request failed.");
[[NSNotificationCenter defaultCenter] postNotificationName: @"connectionError" object: error];
completionBlock([NSDictionary dictionaryWithObject:[error localizedDescription] forKey:@"error"]);
}];
我意识到 AFURLConnectionOperation 的 responseData 始终为空,因为 AFURLConnectionOperation 的这个函数永远不会被调用:
- (void)connection:(NSURLConnection __unused *)connection
didReceiveData:(NSData *)data
谢谢你。我在等你的帮助!!