ios3.0 以后 苹果的sdk对这种情况做了调整,如果是post请求,并且设置了 httpBody,那么请求的超时时间就被默认设置为 240 秒了。于是乎,网络不稳定的时候,你的程序就可能会陷入漫长的等待
对于网络请求:一般我们大多数人使用的是AFNetWorking
Github 链接下面解释该解决方案。
https://github.com/AFNetworking/AFNetworking/issues/393
基本上,AFNetworking 不支持此功能。它是留给开发人员执行关于按个别情况如图所示下面 (取自马特 · 汤普森在 github 上的答案)
- (void)downloadFileRetryingNumberOfTimes:(NSUInteger)ntimes
success:(void (^)(id responseObject))success
failure:(void (^)(NSError *error))failure
{
if (ntimes <= 0) {
if (failure) {
NSError *error = ...;
failure(error);
}
} else {
[self getPath:@"/path/to/file" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
if (success) {
success(...);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
[self downloadFileRetryingNumberOfTimes:ntimes - 1 success:success failure:failure];
}];
}
}