1

アプリに奇妙な問題があります。NSURLConnectionは、次のデリゲートメソッドに頻繁にアクセスします(リクエストの数秒後、タイムアウトが発生する前)。

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
  if (DEBUG_ON)
      NSLog(@"No connection");
  UIAlertView *popup = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error", nil) message:NSLocalizedString(@"TimeoutError", nil) delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
  popup.alertViewStyle = UIAlertViewStyleDefault;
  [popup show];
}

私はこのようにすべての接続を行っています:

NSString *dataStr = [NSString stringWithFormat:LOGIN_JSON_TEMPLATE, email, passwd];
NSData *data = [dataStr dataUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:LOGIN_WS];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [data length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:data];
if (self.loginConnection == nil)
    self.loginConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
else
    self.loginConnection = [self.loginConnection initWithRequest:request delegate:self];

私が正しければ、リクエストにはデフォルトのタイムアウトがあります(60秒?)。変更しようとしましたが、何も変更されませんでした。

なぜですか?

前もって感謝します。

4

1 に答える 1

4

このコードを試してください:

NSMutableURLRequest *request1 = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:1200.0]; 

それ以外の

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];

そして、timeoutintervalを変更できます。

于 2013-02-25T11:30:14.340 に答える