2

如何检查 AFNetworking 是否已完成文件上传?以及如何检查是否有问题?

这是我的代码:

AFHTTPClient *client= [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@"http://server"]];
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
[parameters setObject:[fieldName text] forKey:@"name"];
[parameters setObject:[fieldSurname text] forKey:@"surname"];

NSMutableURLRequest *myRequest = [client multipartFormRequestWithMethod:@"POST" path:@"/upload.php" parameters:parameters constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
    [formData appendPartWithFileData:[[AttachedFile sharedAttachedFile]dataToSend] mimeType:@"image/jpeg" name:@"attach"];
}];

AFHTTPRequestOperation *operation = [[[AFHTTPRequestOperation alloc] initWithRequest:myRequest] autorelease]; 
[operation setUploadProgressBlock:^(NSInteger bytesWritten, NSInteger totalBytesWritten, NSInteger totalBytesExpectedToWrite) {
    NSLog(@"Sent %d of %d bytes", totalBytesWritten, totalBytesExpectedToWrite);
}];

queue = [[[NSOperationQueue alloc] init] autorelease];
[queue addOperation:operation];

我应该实现哪种方法(和委托)?

谢谢你!

4

2 回答 2

3

利用

[AFHTTPRequestOperation HTTPRequestOperationWithRequest:myRequest
                                                success:(void (^)(id object))success 
                                                failure:(void (^)(NSHTTPURLResponse *response, NSError *error))failure];

代替

AFHTTPRequestOperation *operation = [[[AFHTTPRequestOperation alloc] initWithRequest:myRequest] autorelease]; 

当您的文件完全上传时,将调用成功块。如果出现问题,则调用失败块。

于 2011-11-07T15:59:48.033 回答
0

HTTPRequestOperationWithRequest已弃用,您最好在 AFHTTPRequestOperation 实例上使用setCompletionBlockWithSuccess:failure

在AFNetworking上查看 mattt 的答案

于 2012-08-15T21:50:49.343 回答