NSMutableURLRequest超时间隔

时间:2014-12-16 05:17:34

标签: ios objective-c nsmutableurlrequest

我有两个独立的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设置超时间隔时,超时会有一些时间延迟。为什么会这样,以及如何处理。 请帮帮我。

2 个答案:

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