sendAsynchronousRequest在iPhone上出现超时错误

时间:2012-09-24 14:40:23

标签: iphone ios nsurlconnection ios6

我的应用程序允许用户拍照并将其上传到PHP服务器。我使用sendAsynchronousRequest调用将数据(带有照片文件的表单)发送到服务器。在调试时,所有这些调用在我的 iPad 2 上运行得很好。但是当我在 iPhone 4S 上调试它时,其中一些会收到错误代码错误-1001,这表示超时错误。在过去的两天里我试了几千次找到它的根本原因,但我仍然找不到一个。

有没有人遇到类似的情况?或者知道为什么?

我得到的唯一线索是,如果请求数据中有多个文件(原始照片文件和调整大小的拇指文件),则会收到超时错误。请问(照片文件)大小?或文件号码?

2 个答案:

答案 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。如果网络速度不够快,连接将会超时。