关于网络请求超时处理

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

}];

}

}

本文参考来自: http://stackoverflow.com/questions/12220986/afnetworking-how-to-setup-requests-to-be-retried-in-the-event-of-a-timeout

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容