1

次の方法で 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 形式で表示されることを期待しています。これは正しい仮定ですか? もしそうなら、何が間違っているのでしょうか?

4

1 に答える 1

0

ここで何が問題なのかわかりません.PHPでそのデータを使用して何かを行う前に、とにかく配列に変換する必要があります.CakePHPリクエストハンドラーがこれを自動的に行っているようです.

元のjsonが本当に必要な場合は、json_encode()もう一度戻してください。

于 2013-02-25T09:44:02.423 に答える