2015-05-29 52 views
0

我们有一个iOS应用程序,它可以对远程服务器进行多次API调用。我们首先检查我们是否有互联网连接,然后进行所有的API调用。我们正在使用AFNetworking 1.0库。AFNetworking有时可能无法使用某些WiFi网络连接

NSMutableURLRequest *request = [[self.class sharedNetworkHelper].httpClient 
           requestWithMethod:HTTP_VERB_POST 
           path:path 
           parameters:parameters 
           parameterEncoding:AFJSONParameterEncoding]; 
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; 
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, NSHTTPURLResponse *responseObject) { 
    // Success response here 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    // Failure response here 
}]; 
[operation start]; 

有时,无法与服务器建立连接。它会尝试~30秒,然后失败。我们注意到,在一些WiFi网络中,这种情况从未发生过,但在其他WiFi网络中,这种情况发生的时间约为10%。当你再次尝试时,它经常起作用。

我的问题是:

  1. 是否有可能改善这种不可靠的连接特定的无线网络设置?
  2. 在应用程序中尝试几次以查看其中一个请求是否会成功是否是个好主意?
  3. 我们可以更改应用程序中的超时值,以便应用程序不会等待请求处理完后再说5秒?
+1

请说明您正在使用的AFNetworking版本号。 –

回答

1

最后一个很简单。使用:

[request setTimeoutInterval:5]; 

第二个问题取决于你在你的应用中对请求做什么。在进入代码的错误路径之前,有时可能需要尝试调用api 2或3次。

相关问题