我有两个独立的NSOperationQueues,其中两个不同的Web服务操作是并行处理的。对于两个Web服务,超时间隔设置为120秒(2分钟)。在缓慢的互联网连接期间,两种Web服务都会超时,但是在指定的120秒间隔内没有超时。
operationqueue1中的WebService1在10:27:29(hh:mm:ss)开始,并在10:29:51(即142秒)超时。
operationqueue2中的WebService2同时启动,即10:27:29(hh:mm:ss),并在10:30:53超时,即205秒。
预计两者都会以120秒的相同间隔超时,但这种情况不会发生。
每当为NSMutableURLRequest设置超时间隔时,超时会有一些时间延迟。为什么会这样,以及如何处理。 请帮帮我。
答案 0 :(得分:1)
关于Apple Dev论坛有不同的讨论和堆栈溢出关于自定义超时间隔未得到尊重,我认为他们在最新的iOS发布中解决了。
我建议你只创建自己的计时器,并在该间隔后取消连接
在Apple forums
答案 1 :(得分:0)
您可以在创建请求时设置超时间隔,如下所示 -
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:myURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30];
[myRequest setHTTPMethod:@"POST"];
[myRequest setHTTPBody:myData];
NSURLConnection *myConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
或者,您也可以像下面的语句一样设置时间 -
[request setTimeOutSeconds:1000];