Как всегда, я искал форумы и гуглил себя немного безумно, не имея возможности понять, что я делаю неправильно.Поэтому я обращаюсь к великим умам, часто посещающим этот сайт, в надежде найти ответ.Я создаю приложение, которое будет взаимодействовать с базой данных, и при этом я пытаюсь научиться использовать JSON для извлечения и публикации данных в базу данных через iPhone, используя различные примеры, найденные в Интернете.Мне удалось получить данные из Интернета с помощью JSON и показать их в виде таблицы, однако, когда я пытаюсь POST-данные, кажется, ничего не работает.По сути, у меня есть простой php-скрипт, который должен записать полученные данные в текстовый файл (см. Ниже).
<?php
//header('Content-type: application/x-json');
$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = var_dump($_POST);
fwrite($fh, $stringData);
$stringData = "=== JSON Decoded ===";
fwrite($fh, $stringData);
$stringData = $_POST["tmp"];
fwrite($fh, json_decode($stringData));
$stringData = "=== JSON Decoded ===";
fwrite($fh, $stringData);
fclose($fh);
?>
Проблема в том, что скрипт, похоже, ничего не получает.При публикации на него создается файл, который выглядит следующим образом.Таким образом, он создает файл и все, но в нем просто ничего нет.
=== JSON Decoded ====== JSON Decoded ===
Код ниже - это мой метод POST в XCode.
-(IBAction)poststuff:sender{
NSString *stuffToPost = [[NSString alloc] initWithFormat:@"Work, damn you!"];
NSURL *jsonURL = [NSURL URLWithString:@"http://localhost:8888/iWish/json_post.php"];
NSData *postData = [stuffToPost dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSLog(@"Stuff I want to POST:%@", stuffToPost);
NSLog(@"Data I want to POST:%@", postData);
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:jsonURL];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSError *error;
NSURLResponse *response;
NSData *serverReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *data = [[NSString alloc] initWithData:serverReply encoding:NSUTF8StringEncoding];
NSLog(@"Raw Data:", data);
}
Консоль выглядит так, когдазапуск метода и запись пустого текстового файла:
2010-10-04 14:10:16.666 iWish[38743:207] Stuff I want to POST:Work, damn you!
2010-10-04 14:10:16.668 iWish[38743:207] Data I want to POST:<576f726b 2c206461 6d6e2079 6f7521>
2010-10-04 14:10:16.673 iWish[38743:207] serverReply:
Мне кажется, что данные есть, и отформатированы, и так далее, но по какой-то причине не отправляются или не принимаются.Мы надеемся, что где-то в коде есть какая-то глупая ошибка, так как я смотрю на это уже два дня.
Буду признателен за любую помощь.Спасибо!