3

这是我的连接代码:

- (void)sendData: (NSString*)someData {    
 NSMutableURLRequest *theRequest=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:nsURL]
                                                        cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                    timeoutInterval:180.0];
[theRequest setHTTPMethod:@"POST"];
[theRequest setTimeoutInterval:180.0];
[theRequest setHTTPBody:[sdata dataUsingEncoding:NSASCIIStringEncoding]];

NSError *error= nil;
NSData *result = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error];
}

每当我必须向用户发送一些请求时,我都会调用此方法。但是,我想维护一个特定的连接会话并发送请求,而不是一次又一次地创建连接。(因为,URL 是一个安全连接,每次创建连接,都会浪费很多时间)。

我怎样才能做到这一点?有没有办法在这个类中为连接创建一个全局对象(其中写了 sendData 方法),以便在该对象的生命周期内,只有一个连接。?

4

1 回答 1

0

撇开蜂窝提供商的限制不谈,保持连接打开的选择取决于服务器,而不是客户端。如果这是通过 HTTPS 发出的请求,您需要查看有关保持活动连接的服务器文档,并将超时值增加到对您的应用有意义的值。

URL 加载系统将自动重新使用与同一服务器的连接,前提是它尚未被服务器关闭。

请注意,将服务器上的保持活动超时增加到一个较大的值将意味着服务器使用的资源可能会显着增加。

于 2013-02-08T03:08:52.167 回答