1

我正在编写一个简单的客户端服务器应用程序,并且必须将 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

谢谢你。我在等你的帮助!!

4

0 回答 0