UrlConnection Iphone - PullRequest
       1

UrlConnection Iphone

0 голосов
/ 08 ноября 2010

Я пытаюсь получить данные с сервера, используя следующий код.

+ (NSString *) getData:(NSString *)methodName parameters:(NSDictionary *) parameters error:(NSError **)error
{
 NSString *body  = [UdoziProxy getRequestBody:methodName parameters:parameters];

 NSMutableURLRequest *request = [UdoziProxy createRequest:body];

 // Send the request .
 NSHTTPURLResponse *urlResponse = nil;

 NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:error];

 if (responseData == nil || error !=nil) {

  return nil;

 }

 return [[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding] autorelease];
}

Он отлично работает, когда сервер работает, но когда я намеренно останавливаю сервер, объект responseData по-прежнему имеет значение ине ноль.Как я могу справиться с ситуацией, когда соединение потеряно или сервер не работает?

Ответы [ 2 ]

0 голосов
/ 02 марта 2013

вам нужно реализовать делегаты NSURLConnection в

, вы можете получить статус ошибки в следующем делегате

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{

responseData = nil}

там вы должны сделатьПолученные данные равны нулю

, также безопасно получать данные в

- (void)connectionDidFinishLoading:(NSURLConnection *)connection  

{}

, что указывает на то, что соединение завершено

0 голосов
/ 08 ноября 2010

Вам необходимо установить политику кэширования для вашего объекта NSURLRequest.Если синхронный API все еще не соблюдает это, вам нужно переключиться на использование асинхронного API и выбросить объект запроса кеша, когда вы его получите.Если , что не работает, то, возможно, в вашей сети есть прозрачный прокси-сервер, который выполняет некоторое кеширование для вас.

...