AFNetworking如何加入请求超时和网络无法通过验证?

时间:2013-02-19 05:31:49

标签: timeout afnetworking

我使用AFNetworking + SVProgressHUD post来请求数据。如果网络出现问题或速度非常慢且互联网链接被切断,SVProgressHUD将始终显示。

AFNetworking如何判断网络问题?或者请求超时?

1 个答案:

答案 0 :(得分:0)

我不确定SVProgressHUD的实现是什么,但我在我当前的应用程序中使用了一个名为MBProgressHUD的类似的实现。希望这个建议仍然适用。

如果我理解你的问题,你会想知道如果AFNetworking呼叫失败,如何解除你的progressHUD?如果那是你的问题,那么你需要做的就是在你的失败区块中解雇你的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];