10

我正在将我的应用程序从 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部分一切正常,显然它不会发送我的照片。

如果我用普通的发布请求替换多部分表单请求,它就可以工作。唯一的问题是将 my 附加NSData到表单中。

有什么观察吗?谢谢。

4

2 回答 2

18

查看AFNetworking/AFHTTPClient.m代码后,我猜你imageDatanil.

于 2013-02-22T20:32:47.987 回答
2

补充一点,虽然 Sulthan 的回答是正确的,但您通常可以通过将任何带有nil值的参数插入到formData.

于 2013-09-05T07:38:51.697 回答