Objective-C-> JSON-> PHP Array
Od kilku dni zmagam się z tym; Próbuję wysłać tablicę do PHP. Mogę go z powodzeniem wysłać, ale nie jest on brany z post-zmienną (próbuję użyć klucza zmiennej „json” ... Z tym kodem otrzymuję tablicę w php:
Cel C
NSError *error;
NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects: @"one", @"two", @"three", nil] forKeys: [NSArray arrayWithObjects: @"a", @"b", @"c", nil]];
NSArray *jsonArray = [NSArray arrayWithObject:jsonDictionary];
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonArray options:NSUTF8StringEncoding error:&error];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"somewebservicelocation/arrayTest.php?json="]];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:jsonData];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *response = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"response: %@",response);
PHP
$handle = fopen('php://input','r');
$array = fgets($handle);
echo $array;
if(isset($array))
{
echo "success";
}
else
{
echo "failure";
}
Jeśli korzystam z tego PHP, używając _POST, nie kocham:
$rawJsonData = $_POST['json'];
$array = json_decode(stripslashes($rawJsonData),true);
echo $array;
if(isset($array))
{
echo "success";
}
else
{
echo "failure";
}
... Byłem w tym od kilku dni - w całym przepełnieniu stosu i rozumiem, że muszę zawrzeć zmienną i dane w treści żądania, ale po prostu nie mogę go uruchomić. Co ja robię źle? Jak inaczej to robisz? Zapisz mnie przed tym bólem głowy ...