我的应用程序允许用户拍照并将其上传到PHP服务器。我使用sendAsynchronousRequest调用将数据(带有照片文件的表单)发送到服务器。在调试时,所有这些调用在我的 iPad 2 上运行得很好。但是当我在 iPhone 4S 上调试它时,其中一些会收到错误代码错误-1001,这表示超时错误。在过去的两天里我试了几千次找到它的根本原因,但我仍然找不到一个。
有没有人遇到类似的情况?或者知道为什么?
我得到的唯一线索是,如果请求数据中有多个文件(原始照片文件和调整大小的拇指文件),则会收到超时错误。请问(照片文件)大小?或文件号码?
答案 0 :(得分:1)
我使用这种简单的方法处理了ASIHTTP请求失败。
- (void)requestFailed:(ASIHTTPRequest *)request {
NSError *error = [request error];
if([error code] == ASIRequestTimedOutErrorType ) {
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Error"
message:@"Connection Timed out"
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alert show];
return;
} else if ( [error code] == ASIConnectionFailureErrorType) {
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Error"
message:@"Connection Failiure"
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alert show];
return;
}
}
您还可以在请求中设置连接超时 喜欢
[request_ setTimeOutSeconds:50.0];
这将等待50秒并显示连接超时错误。
答案 1 :(得分:0)
我解决了这个问题。它是由上传大尺寸文件引起的。 iPhone 4s的原始照片令牌大约是5M。如果网络速度不够快,连接将会超时。