如何使用sendSynchronousRequest维护连接会话

时间:2013-01-17 11:58:08

标签: iphone ios session nsurlconnection synchronous

这是我的连接代码:

- (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方法),这样在该对象的生命周期中,只有一个连接。?

1 个答案:

答案 0 :(得分:0)

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

如果服务器尚未关闭URL加载系统,它将自动重新连接到同一服务器。

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