【发布时间】:2013-06-03 18:05:31
【问题描述】:
我们有一个 iOS 应用程序,它使用多部分帖子将图像上传到服务器。使用 wifi 时一切正常,但在 3G 上拍摄大图像时出现网络错误。
在客户端 (iPhone) 上:
我有一个
Domain=NSURLErrorDomain Code=-1021 “请求体流耗尽”
基于this post,我尝试将AFNetwork 库与该方法一起使用,但仍然得到了完全相同的结果。
在服务器上:
我已经设置了一个代理来查看请求,我得到了
“插座断管”
通常在传输完 740Kb 之后
那么,我做错了什么?就像我说的那样,在 wifi 上一切正常,在 3G 上,小图像也很好。
AFNetwork 版本代码(大图像在 600 - 800 kb 后停止传输):
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:self.baseURL];
request = [client multipartFormRequestWithMethod:@"POST"
path:nil
parameters:nil
constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
{
for (NSString* partType in self.parts) {
if ([partType isEqualToString:@"jsonpart"]) {
[formData appendPartWithFormData:[self.parts objectForKey:partType] name:@"@json"];
}
else{ //is an image for sure
[formData appendPartWithFileData:[self.parts objectForKey:partType]
name:partType
fileName:[NSString stringWithFormat:@"%@-%d.jpg", partType, [partType hash]]
mimeType:@"image/jpeg"];
}
}
[formData throttleBandwidthWithPacketSize:kAFUploadStream3GSuggestedPacketSize delay:kAFUploadStream3GSuggestedDelay];
}];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[client enqueueHTTPRequestOperation:operation];
【问题讨论】:
-
您的移动运营商是什么?另外,您是否尝试使用低于默认推荐值的
throttleBandwidthWithPacketSize:delay:? -
是的,我确实试过那个。不同的运营商也会出现同样的问题。
标签: ios objective-c nsurlconnection afnetworking 3g-network