Я знаю, что это обсуждалось во многих других сообщениях, но мне нужно опубликовать это, потому что эти темы не помогли мне, к сожалению.Я пытаюсь подключиться к серверу rails, который возвращает некоторые данные в формате JSON в ответ на запрос GET. Я реализовал четыре метода для NSConnectionDataDelegate, как указано ниже
#pragma mark -
#pragma mark NSURLConnectionDataDelegate
-(void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
NSLog(@"didReceiveResponse");
[resultData setLength:0];
}
-(void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
NSLog(@"didReceiveData");
[resultData appendData:data];
}
-(void) connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
NSLog(@"didFailWithError");
NSString *errDesc = [NSString stringWithFormat:@"Connection failed: %@", [error description]];
NSLog(@"%@",errDesc);
}
-(void) connectionDidFinishLoading:(NSURLConnection *)connection {
NSLog(@"didReceiveLoading");
}
В методе connectionDidFinishDownloading (не указан)) Я выполняю анализ JSON, но это не удается, поскольку resultData пусто, поскольку метод didReceiveData никогда не вызывается.
Метод didReceiveResponse вызывается, потому что я вижу, что сообщение регистрируется.Сервер работает на локальном хосте, поэтому я могу подтвердить, что запрос получен, и используя Чарльза, я знаю, что ответ получен правильно в формате JSON.Таким образом, на стороне сервера, похоже, нет проблем.Но метод didReceiveData никогда не вызывается.Это не метод didFailWithError.
Может кто-нибудь помочь мне с этим?Я не могу понять, что я делаю неправильно.Это первый раз, когда я работаю с NSURL, поэтому я буду очень признателен.Я работаю на iOS 5 с ARC.
Satyam
Редактировать:
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@?%@", kDevelopmentMode ? kLocalHost : kHost, endpoint, parameters]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
NSURLConnection *urlConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];