AFNetworking HTTP POST上传图像在接近完成时停止

我正在使用下面的代码HTTP POST一个多部分的Web表单,包括一个JPEG图像。

码:

NSMutableDictionary *params = [[NSMutableDictionary alloc] init]; [params setObject:nameField.text forKey:@"name"]; [params setObject:emailField.text forKey:@"email"]; [params setObject:titleField.text forKey:@"title"]; [params setObject:dateString forKey:@"link"]; [params setObject:descriptionTV.text forKey:@"content"]; [params setObject:tag forKey:@"tags"]; NSData* sendData = UIImageJPEGRepresentation(uploadedPhoto.image, 1.0); AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://example.com/"]]; NSMutableURLRequest *afRequest = [httpClient multipartFormRequestWithMethod:@"POST" path:@"form" parameters:params constructingBodyWithBlock:^(id <AFMultipartFormData>formData) { [formData appendPartWithFileData:sendData name:@"image" fileName:@"image.jpeg" mimeType:@"image/jpeg"]; }]; AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:afRequest]; [operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) { NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite); }]; [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"SUCCESS! %@", operation.responseString); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"FAILED!!! %@", operation.responseString); }]; [operation start]; 

网页表单:

 <input type="text" name="name" id="name" value="" /> <input type="text" name="email" id="email" value="" /> <input type="text" name="title" id="title" value="" /> <input type="text" name="link" id="link" value="" /> <input type="text" name="content" id="content" value="" /> <input type="text" name="tags" id="tags" value="" /> <input type="file" name="image" id="image" value="" /> 

每次运行代码时,图像上传都会顺利进行,直到上传进度即将完成(大约完成了99.5%)。 该操作的completionBlockWithSuccess:failure:块永远不会启动,应用程序只是冻结在那里。

任何人都可以帮我解决这个问题吗? 我不知道我在这里做错了什么。

编辑:

我做了一些更多的调查,发现即使有一个无效的请求path也是如此,但我确定我没有错误地input我的表单path。 另外,当我用nilreplaceconstructingBodyWithBlock块时,它将正常工作。

编辑2:

我在AFNetworking的Github上做了一些窥探,发现了一个Github问题post和一个Stack Overflow类似的post 。 我试过使用[httpClient enqueueHTTPRequestOperation:operation]; 而不是[operation start]; 并使httpClient单身,但同样的问题仍然存在。

你有没有试图在失败callback中打印NSError ? 也许服务器正在等待另一个MIMEtypes。