тайм-аут запроса и указанный сервер не может быть найден - PullRequest
1 голос
/ 05 мая 2011

Я вижу эту проблему с проводной связью, когда при запуске приложения я получаю непрерывное (4-5 раз) сообщение об ошибке, когда-то появляется сообщение:

  1. "невозможно установить соединение с момента вызовав данный момент активен "нет активного вызова

  2. Время ожидания истекло

  3. Сервер с указанным именем хоста не найден.

и когда вы нажимаете кнопку ОК, пару раз появляется сообщение об ошибке, и приложение работает без проблем.

Когда я запускаю приложение, я делаю две вещи,я начинаю обновлять текущее местоположение, используя CLLocationManager, и как только я получаю местоположение, я делаю два асинхронных вызова, используя NSURLConnection, я вижу, что метод didFailWithError в моем методе делегата NSURLConnection вызывается, все сообщения приходят оттуда, так что я пытаюсь выяснитьout is

  1. Почему это происходит, с моим сервером все в порядке, у меня правильное подключение к интернету (я нахожусь на Wi-Fi, а не на данных мобильного телефона)
  2. Почему это происходит столько раз, я запускаю только два запроса.

Он начинает вести себя плохо при запуске.Мне было интересно, нужно ли время для разминки или что-то в этом роде.Я хотел бы отобразить сообщение об ошибке, но не все из них, вероятно, все в порядке, даже если нет подключения к данным, отображение столько раз будет раздражать пользователя.

Вот код в моем didFailWithError.

 UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error"
                                                     message:[NSString stringWithFormat:@"Error code is %d", [error code]]
                                                    delegate:nil
                                           cancelButtonTitle:@"OK"
                                           otherButtonTitles:nil];
  [alertView show];
  [alertView release];

Еще один вопрос, как мне распечатать реальное сообщение об ошибке вместо этого загадочного кода ошибки.

Спасибо за помощьme out.

[EDIT] код для установления соединения

    NSURL *getURL = [NSURL URLWithString: urlString];   

    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];

//add our HTTP headers and URL
[request setValue: @ "plain/text" forHTTPHeaderField : @"Content-Type"];
[request setHTTPMethod:@"GET"];
[request setURL : getURL];

NSURLConnection* urlConnection =
   [[[NSURLConnection alloc] initWithRequest:request 
                                    delegate:delegate  
                            startImmediately:YES] autorelease];

Йогеш

Ответы [ 3 ]

1 голос
/ 19 мая 2011

Вы можете напечатать фактическое сообщение об ошибке, используя следующие строки:

-(void) connection:(NSURLConnection *) connection didFailWithError:(NSError *) error {
     NSLog(@"localizedDescription%@", [error localizedDescription]);
}

Вы должны будете реализовать описанный выше метод везде, где вы делаете NSURLConnection.

Я новичок вПереполнение стека.Поэтому, если вы не следовали никаким правилам / обычаям, отвечая на поставленный выше вопрос, укажите, пожалуйста.

1 голос
/ 27 мая 2011

Я нашел ответ на этот вопрос, на самом деле у меня есть вещь signficantLocationChange, и происходит то, когда приложение просыпается после из-за signficantLocationChange, приложение должно сделать серверный вызов, чтобы получить некоторую информацию, и происходит следующее:когда приложение просыпается, возникает ситуация, когда отсутствует доступное соединение для передачи данных, поэтому все ошибки накапливаются, и когда пользователь открывает приложение, он видит все это.

0 голосов
/ 07 мая 2011

Избавьтесь от заголовка запроса Content-Type: text/plain сразу. Если вы не отправляете данные POST вместе, запрос не имеет тип содержимого. И запросы GET не должны содержать данные POST.

...