Цель состоит в том, чтобы выполнить простую аутентификацию по имени пользователя / паролю путем запроса базы данных. Пока соединение не работает прилично, мой файл назначения php просто имеет следующий код:
echo "Posted: " . $_POST['email'];
Код, делающий это синхронно:
NSString *post = [[NSString alloc] initWithFormat:@"email=%@&password=%@", self.email.text, ..]; // .. simplified keychainItem
NSData *postEncoded = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];
NSString *postLength = [NSString stringWithFormat:@"%d", [postEncoded length]];
NSURL *url = [NSURL URLWithString:@"http://eng.studev.groept.be/web2.0/a11_web02/improver/app/testPost"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postEncoded];
NSError *error = nil;
NSURLResponse *response = nil;
NSData *encodedData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *data=[[NSString alloc]initWithData:encodedData encoding:NSUTF8StringEncoding];
NSLog(@"Data? %@",data);
Правильное значение отображается как эхо. Но при попытке сделать это асинхронно, я получаю следующую ошибку php: «Неопределенный индекс: электронная почта».
Я пытаюсь запустить асинхронный запрос с этой строки:
[[NSURLConnection connectionWithRequest:request delegate:self] start];
Затем у меня есть соединение с методом делегата: didReceiveResponse, но там я не могу получить данные ... Или мне нужен другой метод делегата? Кроме того, насколько «безопасно» проверять результат вашего запроса, используя только эхо (нужен ли мне / может быть нужен поток?) ??
Tia
EDIT
Проблема связана с сервером, а не с кодом Objective-C. Задал новый вопрос для охвата нужной аудитории: $ _ POST оставлено пустым