【问题标题】:AFNetworking won't allow large file uploadAFNetworking 不允许上传大文件
【发布时间】:2013-10-15 18:22:58
【问题描述】:

使用 AFNetworking,我正在尝试上传尺寸为 33695 的图像 (1280x990)。下面的代码适用于较小的图像(即:390x390),但较大的图像会引发错误:

[client POST:@"/upload_image" parameters:nil constructingBodyWithBlock:^(id <AFMultipartFormData>formData) {

    [formData appendPartWithFileData:imageData name:@"image" fileName:@"image.jpg" mimeType:@"image/jpeg"];

} success:^(NSURLSessionDataTask * task, id responderData) {

} failure:^(NSURLSessionDataTask * task, NSError * error) {

}];

抛出错误:

NSDebugDescription = "JSON text did not start with array or object and option to allow fragments not set.";

我搜索了许多其他帖子,似乎没有任何内容涉及较大图像尺寸的问题。有什么建议吗?

【问题讨论】:

  • 该错误是否是由于服务器发回非 JSON 响应而引发的?收到的实际响应是什么。您是否使用 Charles 来查看实际发送/接收的内容?
  • 该错误不是服务器发回非 JSON 响应的结果,我使用了 Charles,甚至没有服务器调用发出。但是,对于较小的图像(即:我将图像大小调整为 320x320),呼叫就会结束,一切都很好。似乎 AFHTTPSessionManager 不喜欢较大的文件。
  • 这是服务器端问题。服务器向您发送错误的 json 请联系服务器人员。

标签: objective-c afnetworking-2


【解决方案1】:

根据 AFNetworking 的作者,请改用 appendPartWithFileURL。因为数据将从磁盘流式传输。

【讨论】:

    【解决方案2】:

    我在尝试使用 AFNetworking 时遇到了类似的问题。从那以后,我转而使用 RestKit 和 SDWebImage 来处理图像的异步加载和缓存......它就像一个魅力。您可能想看一下 Quora 上的这篇文章,以更好地比较它们之间的差异......主要是 Restkit 的一个缺点是异步和缓存,但 SDWebImage 只需一行代码就可以轻松解决这个问题。

    http://www.quora.com/iOS-Development/RestKit-vs-AFNetworking-What-are-the-pros-and-cons

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-07
      • 2018-10-16
      • 1970-01-01
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      • 2017-06-09
      相关资源
      最近更新 更多