В прошлом я создавал приложение для iPhone, основанное на базе данных sqlite, обновленной страницей php. Когда вы получаете доступ к странице PHP, она распечатывает дамп базы данных sqlite, и приложение выполняет различные запросы для обновления базы данных sqlite. Мое предыдущее приложение работало нормально и обновлялось соответствующим образом. Недавно я попытался применить тот же процесс к новому приложению с гораздо большей базой данных. Я столкнулся с проблемами.
Что я делаю, так это отправляю некоторые переменные post на страницу PHP, которая распознает POST и выводит команды sqlite для обновления базы данных. Проблема в том, что страница печатает команды за несколько секунд. Если у меня на странице напечатан какой-то статический текст, я получаю его в своем NSLog (@ "Данные ответа будут ==>% @", результат); команда. Если мне нужно извлечь информацию из моей базы данных MySQL, это займет около 3-5 секунд, а затем напечатает (в моем обычном браузере). Однако, когда я запускаю приложение, оно говорит, что данные отклика будут ==> (null) вместо команд.
Может кто-нибудь пролить свет на то, что может происходить? Я знаю, что это работает, когда не печатает много материала и когда оно статично. По какой-то причине динамическая часть возвращает ноль.
Помощь оценена.
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlBase]];
[request setHTTPMethod:@"POST"];
[request setTimeoutInterval:60.0];
NSData *post = [myParameters dataUsingEncoding: NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d",[post length]];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Current-Type"];
[request setHTTPBody:post];
[request setHTTPBody:[myParameters dataUsingEncoding:NSUTF8StringEncoding]];
// set headers
NSString *contentType = [NSString stringWithFormat:@"text/plain"];
NSHTTPURLResponse *urlResponse = nil;
NSError *error = [[NSError alloc] init];
NSData *responseData = [NSURLConnection sendSynchronousRequest:request
returningResponse:&urlResponse
error:&error];
NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"Response data is going to be ==> %@", result);