2013-02-18 142 views
3

我正在使用AFNetworking将多部分表单发送到Web服务器,并且我在AFHTTPRequestOperation上遇到了一些问题。这是成功和失败块从未被称为,我开始后。AFNetworking AFHTTPRequestOperation块永远不会被调用

这里是我的代码(它的简历)

NSMutableURLRequest *request = [[ServerAPI sharedClient] multipartFormRequestWithMethod:@"POST" path:postUrl parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData> formData) { 
     [formData appendPartWithFileData:picture.picture_data name:@"InputFile" fileName:picture.name mimeType:@"image/jpg"]; 
    }]; 

    AFHTTPRequestOperation *operation = [[ServerAPI sharedClient] HTTPRequestOperationWithRequest: request success:^(AFHTTPRequestOperation *operation, id responseObject) { 
     NSLog(@"Success"); 
    } failure: ^(AFHTTPRequestOperation *operation, NSError *error) { 
     NSLog(@"Failure"); 
    }]; 

    [operation setUploadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) { 
     NSLog(@"%f", (totalBytesRead/(float) totalBytesExpectedToRead)); 
    }];   
    [[ServerAPI sharedClient] enqueueHTTPRequestOperation:operation]; 

我可以看到进步的日志,但成功和失败块不会被调用。

picture.picture_data是具有UIImageJPEGRepresentation(image, 0.7) ServerAPI初始化的NSDataAFHTTPClient一个子类,并且sharedCliend是一个单方法。

哪些是AFNetworking不会调用我的块,甚至没有正确的错误消息的原因?

谢谢大家!

编辑

我做相同的URL的GET请求仅这一项之前,它工作照常进行。我使用的网址是:part/_layouts/UploadEx.aspx?List=%7BD432BF97-7175-40C1-8E0D-27D8661CBC90%7D&RootFolder=%2Fpwa%2Fpart%2FLibrary&Source=http%3A%2F%2Fwww%2Emysite%2Ecom%2Fpwa%2Fpart%2FLibrary%2FForms%2FAllItems%2Easpx&IsDlg=1

+1

有没有发现问题? – jsetting32 2013-11-09 11:44:36

回答

0

在您的代码中,请检查您的postUrlBaseURL+postURL必须有效。尝试使用普通网络浏览器使用网址BaseURL+postURL上传图片。

编辑

方法HTTPRequestOperationWithRequest:success:failure:不适用于文件上传工作,但适用于JSON/HTML抓取。 尝试使用

AFHTTPRequestOperation *operation = [[AFJSONRequestOperation alloc] initWithRequest:request]; 

[operation setUploadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) { 
     NSLog(@"%f", (totalBytesRead/(float) totalBytesExpectedToRead)); 
    }]; 

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 
     NSLog(@"Success"); 
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
     NSLog(@"Failure"); 
    }]; 

[[ServerAPI sharedClient] enqueueHTTPRequestOperation:operation]; 
+0

我使用相同的网址获取请求,就像往常一样......我将发布我在问题中使用的URL,谢谢! – 2013-02-19 03:58:33

+0

您的服务器对上传的文件大小有限制吗? – 2013-02-19 08:26:15

+0

我编辑的答案。希望可以帮助 – 2013-02-19 08:55:52

相关问题