5

UIRequestでタイムアウトを15秒または30秒に設定する必要がありますが、常にデフォルトのタイムアウトが使用されます。接続に最小タイムアウトを設定する方法はありますか?

4

3 に答える 3

12

この回答timeoutIntervalは、NSURLRequestオブジェクトの最小値について説明しています。より小さな値が必要な場合は、希望の時間でNSTimerを開始し、タイマーの起動メソッドでNSURLConnectionオブジェクトの接続をキャンセルすることでこれを行うことができます。のように:

//....
connection = [[NSURLConnection connectionWithRequest:request delegate:self] retain];
[request release];

[connection start];

if (timer == NULL) {

    timer = [NSTimer scheduledTimerWithTimeInterval: TimeOutSecond
                                             target: self
                                           selector: @selector(cancelURLConnection:)
                                           userInfo: nil 
                                            repeats: NO];
    [timer retain];
}


- (void)cancelURLConnection:(NSTimer *)timerP {
    [connection cancel]; //NSURLConnection object
    NSLog(@"Connection timeout.");
    [timer invalidate];
}
于 2012-07-30T12:51:24.810 に答える
3

構築時にタイムアウト間隔プロパティを設定することに問題があるようです。

NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:240.0];

代わりに、構築後に設定します。

request.timeoutInterval = 70;

また、間隔を低く設定できる方法にはいくつかの制限があるように思われることにも注意してください。詳細については、この投稿をお読みください: https ://devforums.apple.com/message/108087#108087

于 2012-07-30T09:09:10.500 に答える
1

POSTリクエストのタイムアウトの最小値は4分だと思います。最も安全な方法はNSTimer、タイムアウトが発生したときにリクエストを開始してキャンセルすることです。

于 2012-07-30T09:27:25.850 に答える