Как AFNetworking присоединиться к таймауту запроса и проверке непроходимости сети?

Я использую AFNetworking + SVProgressHUD post для запроса данных. SVProgressHUD всегда будет отображаться, если сеть имеет проблемы или работает очень медленно, а интернет-каналы отключены.

Как AFNetworking судить о сетевой проблеме? Или запросить тайм-аут?


person DaringLi    schedule 19.02.2013    source источник


Ответы (1)


Я не уверен, какова реализация SVProgressHUD, но я использую аналогичную, называемую MBProgressHUD, в своем текущем приложении. Надеюсь, этот совет все еще актуален.

Если я правильно понял ваш вопрос, вам интересно, как закрыть ваш progressHUD, если вызов AFNetworking не работает? Если это ваш вопрос, то все, что вам нужно сделать, это отключить HUD в блоке ошибок, как показано ниже.

MBProgressHUD *HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view];
[navigationController.view addSubview:HUD];

HUD.dimBackground = YES;
[HUD show:YES];

//Set up the request
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"example.com"]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url];

[request setHTTPMethod:@"POST"];

//Set up the operation
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation  alloc] initWithRequest:request];

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

        // Hide activity indicator after success
        [HUD show:NO];
        [HUD hide:YES];

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

    // Hide activity indicator after failure
    [HUD show:NO];
    [HUD hide:YES];
}];

// Fire off the operation
[operation start];
person ebandersen    schedule 29.04.2013