Тайм-аут запрос ASIHTTP

Я пользуюсь библиотекой ASIHTTPRequest, чтобы запросить некоторые данные с сервера в моем приложении для iPhone. Но я не могу выяснить, как создать тайм-аут так, чтобы, если сервер понижается или iPhone не имел интернет-соединения, которое не разрушает приложение.

Заранее спасибо

РЕДАКТИРОВАНИЕ>>>

tt. Kilew Ваш код не работает... Я отправил немного примера кода

NSURL *url = [NSURL URLWithString:@"A URL WITH A FORM"];
ASIFormDataRequest *requestPOST = [ASIFormDataRequest requestWithURL:url];
[requestPOST setPostValue:un forKey:@"username"];
[requestPOST setPostValue:pw forKey:@"password"];           
[requestPOST setPostValue:@"Login" forKey:@"submit"];
[requestPOST start];

[requestPOST setTimeOutSeconds:10];

NSLog(@"Fail: %@", [requestPOST failWithError:ASIRequestTimedOutError]);
5
задан Zen_silence 21 February 2010 в 18:22
поделиться

2 ответа

[request setTimeOutSeconds:10];

Обновление с дополнительным кодом:

NSURL *url = [NSURL URLWithString:@"A URL WITH A FORM"];
ASIFormDataRequest *requestPOST = [ASIFormDataRequest requestWithURL:url];
[requestPOST setPostValue:un forKey:@"username"];
[requestPOST setPostValue:pw forKey:@"password"];           
[requestPOST setPostValue:@"Login" forKey:@"submit"];
[requestPOST setTimeOutSeconds:10];
[requestPOST setDelegate:self]
[requestPOST startAsynchronous];

Неудачный обработчик:

- (void)requestFailed:(ASIHTTPRequest *)request {
    NSError *error = [request error];
    if ([error isKindOfClass:[ASIRequestTimedOutError class]]) {
        // Actions specific to timeout
    }
}

Удачный обработчик:

- (void)requestFinished:(ASIHTTPRequest *)request
{
   // Use when fetching text data
   NSString *responseString = [request responseString];

   // Use when fetching binary data
   NSData *responseData = [request responseData];

   // Do something with the response.
}
16
ответ дан 18 December 2019 в 06:34
поделиться
// Number of seconds to wait before timing out - default is 10
NSTimeInterval timeOutSeconds;

Если произойдет таймаут, вы получите

[self failWithError:ASIRequestTimedOutError];
0
ответ дан 18 December 2019 в 06:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: