次の方法で Xcode から JSON データを送信します。
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"Test title", @"title",
@"Test option1", @"option1",
@"Test option2", @"option2", nil];
NSError *error;
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:&error];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
NSURL *url = [NSURL URLWithString:@"http://somedomain.com/posts/add"];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setHTTPBody:jsonData];
[NSURLConnection connectionWithRequest:request delegate:self];
次の方法で、CakePHP で受信したデータをファイルに書き込みます。
public function add()
{
if ($this->request->is('post'))
if ($this->RequestHandler->requestedWith('json')) {
file_put_contents('debug.txt', print_r($this->request->data, true));
}
}
}
ファイル (「debug.txt」) 内のデータは次のようになります。
配列 ( [オプション 2] => テスト オプション 2 [タイトル] => テスト タイトル [オプション 1] => テスト オプション 1 )
送信されるデータが JSON 形式であることはわかっており、受信したデータは「debug.txt」の配列ではなく JSON 形式で表示されることを期待しています。これは正しい仮定ですか? もしそうなら、何が間違っているのでしょうか?