AFNetworking 有时无法使用某些 WiFi 网络进行连接

AFNetworking can sometimes not connect using some WiFi networks

我们有一个 iOS 应用程序,它对远程服务器进行了多次 API 调用。我们首先检查我们是否有互联网连接,然后进行所有 API 调用。为此,我们使用 AFNetworking 1.0 库。

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 秒后处理完请求?

最后一个非常简单。使用:

[request setTimeoutInterval:5];

第二个问题取决于您对应用中的请求做了什么。有时在转到代码的错误路径之前尝试调用 api 2 或 3 次可能是合适的。