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 に答える