Как я могу получить доступ к json-данным в php-скрипте, который он получил через http-post? Я делаю следующее на стороне iOS:
NSData *data = [NSJSONSerialization dataWithJSONObject:object options:0 error:NULL]; NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://example.com/script.php"]]; [req setHTTPMethod:@"POST"]; [req setHTTPBody:data]; [NSURLConnection sendSynchronousRequest:req returningResponse:&response error:&err];
Как получить доступ к этим данным в php-скрипте? Другими словами, когда я вызываю json_decode(...)
в php-скрипте, что такое ...
?
Если вы отправляете свой JSON в методе POST, его можно получить на PHP с помощью кода ниже
<?php $handle = fopen('php://input','r'); $jsonInput = fgets($handle); // Decoding JSON into an Array $decoded = json_decode($jsonInput,true); ?>
Почтовый запрос при отправке с использованием iOS не работает с $ _POST. Если аналогичный запрос выдается с помощью js, json в post работает.
В php-скрипте вы берете данные POST и делаете
json_decode($data);
и это даст вам объект, с которым вы можете работать.
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"POST"]; [request setHTTPBody: jsonData]; [request setValue:@"text/html" forHTTPHeaderField:@"Content-Type"]; [request setValue:[NSString stringWithFormat:@"%d", [jsonData length]] forHTTPHeaderField:@"Content-Length"];
Этот код можно использовать для отправки ответа