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];
}];
}
}