我正在将我的应用程序从ASIHTTPRequest迁移到AFNetworking以与后端API进行通信。 除了图片上传之外,一切似乎都能正常工作。我在互联网上使用了不同的例子,但在我的应用程序上运行它总会导致崩溃。
2013-02-22 17:02:28.680 MyApp[1477:907] *** Assertion failure in -[AFStreamingMultipartFormData appendPartWithHeaders:body:], AFNetworking/AFHTTPClient.m:885
2013-02-22 17:02:28.687 MyApp[1477:907] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: body'
问题似乎在这里:
NSMutableURLRequest *request = [[MyServiceAPIClient sharedClient] multipartFormRequestWithMethod:@"POST" path:@"/api/method" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
[formData appendPartWithFileData:imageData name:@"face" fileName:@"face.jpg" mimeType:@"image/jpeg"];
}];
MyServiceAPIClient
是一个单独的类,在AFNetworking iOS示例应用程序中给出。
如果我评论appendPartWithFileData
部分一切正常,显然它不会发送我的照片。
如果我用普通的帖子请求替换多部分表单请求,它就可以工作。唯一的问题是将NSData
附加到表单。
有什么观察?感谢。
答案 0 :(得分:18)
在查看AFNetworking/AFHTTPClient.m
代码后,我的猜测是imageData
为nil
。
答案 1 :(得分:2)
只是添加,虽然Sulthan的答案是正确的,但您通常可以通过将nil
值的任何参数插入formData
来获取此错误消息。