Я попытался отправить POST-данные в php-файл с помощью асинхронных и синхронизирующих NSURLConnection и ASIHTTPRequest, но оба отказываются выводить что-либо в $ _POST. Мой файл s.php выглядит так:
<?php
echo 'Hi There';
echo $_POST['fname'];
foreach ($_POST as $i => $value) {
echo($i);
}
?>
Мой запрос ASIHTTR:
NSURL *url = [[NSURL alloc] initWithString:@"http://server.com/s.php"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"Ben" forKey:@"fname"];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestFinished:)];
[request startAsynchronous];
Который печатает только строку Hi There, когда возвращается к requestFinished.
Edit:
Используя ASIFormDataRequest, я почти уверен, что запрос уже установлен на POST, по крайней мере, кажется, нет способа установить его вручную. Когда я попробовал NSURLConnection, я использовал:
NSURL *url = [NSURL URLWithString:@"http://server.com/s.php"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:[[NSString stringWithFormat:@"fname=carl"] dataUsingEncoding:NSUTF8StringEncoding]];
NSURLResponse *response;
NSData *urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
NSString *stringResponse = [[NSString alloc] initWithData:urlData encoding:NSASCIIStringEncoding];
NSLog(@"%@",stringResponse);
И все же только получаю строку Hi There, а также получаю обычные ответы, когда я использую html-форму.