0

My Appを使用すると、ユーザーは写真を撮ってPHPサーバーにアップロードできます。sendAsynchronousRequest呼び出しを使用して、データ(写真ファイルを含むフォーム)をサーバーに送信します。これらの呼び出しはすべて、デバッグ時にiPad2で正常に機能しています。しかし、iPhone 4Sでデバッグしたところ、タイムアウトエラーを表すエラーコード-1001でエラーが発生するものがあります。過去2日間に何千回も原因を突き止めようとしましたが、それでも見つかりません。

誰かが同じような状況に遭遇しましたか?または理由を知っていますか?

私が得た唯一の手がかりは、リクエストデータに複数のファイル(元の写真ファイルとサイズ変更されたサムファイル)がある場合、タイムアウトエラーを受け取ることです。リクエスト(写真ファイル)サイズについてですか?またはファイル番号?

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

私は問題を解決しました。大きなサイズのファイルをアップロードしたことが原因です。iPhone4sによるオリジナルの写真トークンは約5Mの大きさです。ネットワークの速度が十分でない場合、接続はタイムアウトになります。

于 2012-09-26T13:21:42.430 に答える