0

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

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

我得到的唯一线索是,如果请求数据中有多个文件(原始照片文件和调整大小的拇指文件),它将收到超时错误。是关于请求(照片文件)的大小吗?还是文件号?

4

2 回答 2

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 秒并显示连接超时错误。

于 2012-09-24T14:55:53.527 回答
0

我解决了这个问题。它是由上传大文件引起的。iPhone 4s 的原始照片令牌大约有 5M 大。如果网络不够快,连接就会超时。

于 2012-09-26T13:21:42.430 回答