Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在一行中使用三个NSURLConnections会导致第三个调用挂起_Ios_Nsurlconnection - Fatal编程技术网

Ios 在一行中使用三个NSURLConnections会导致第三个调用挂起

Ios 在一行中使用三个NSURLConnections会导致第三个调用挂起,ios,nsurlconnection,Ios,Nsurlconnection,我遇到了一个非常奇怪的连接问题。我有一个控制器,它使用以下函数在viewDidLoad方法中发出三个异步GET请求: + (void)connectAsyncWithURL:(NSURL *)url httpMethod:(NSString *)httpMethod delegate:(id <NSURLConnectionDelegate>)delegate timeout:(NSTimeInterval)timeout { NSMutableURLRequest *req

我遇到了一个非常奇怪的连接问题。我有一个控制器,它使用以下函数在viewDidLoad方法中发出三个异步GET请求:

+ (void)connectAsyncWithURL:(NSURL *)url httpMethod:(NSString *)httpMethod delegate:(id <NSURLConnectionDelegate>)delegate timeout:(NSTimeInterval)timeout
{
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:timeout];
    [request setHTTPMethod:httpMethod];
    [NSURLConnection connectionWithRequest:request delegate:delegate];
}
+(void)connectAsyncWithURL:(NSURL*)url httpMethod:(NSString*)httpMethod委托:(id)委托超时:(NSTimeInterval)超时
{
NSMutableURLRequest*request=[[NSMutableURLRequest alloc]initWithURL:url缓存策略:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:timeout];
[请求设置httpMethod:httpMethod];
[NSURLConnection connectionWithRequest:request委托:委托];
}
前两个连接按预期工作。但是,第三个将挂起,直到超时发生。失败后重试会导致调用成功。请求的顺序似乎并不重要——失败的总是最后一个。我拥有向其发出请求的服务器,通过观察传入的网络流量,我可以看到前两个请求,但第三个请求在初始超时之前不会出现在第三个NSURLConnection中。更奇怪的是,在超时发生后,如果我离开控制器再次返回,在我重新启动应用程序之前,问题不再重现


有人知道是什么原因导致了这种情况吗?

一些服务器会将来自单个客户端的同时连接数限制为两个。如果是这种情况,那么前两个连接将成功,第三个连接将挂起,直到前两个连接之一完成。听起来这可以解释您看到的情况。

一些服务器会将来自单个客户端的同时连接数限制为两个。如果是这种情况,那么前两个连接将成功,第三个连接将挂起,直到前两个连接之一完成。听起来这可以解释你看到了什么。

谢谢,这似乎就是问题所在。看起来IIS对每个客户端的同时连接限制为5个。在导航到此控制器之前,我有一些其他连接正在启动。谢谢,这似乎是问题所在。看起来IIS对每个客户端的同时连接限制为5个。在导航到此控制器之前,我有一些其他连接正在启动。