1

iPhoneアプリからphpサーバーにjsonを送信しようとすると、少し問題が発生します。

NSData オブジェクトを作成します

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:test];

私はそれをウェブサーバーに送信します

-(void)send:(NSData *)jsonData{



    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]
                                    initWithURL:[NSURL
                                                 URLWithString:@"http://localhost:8888/jsonserver/try2.php"]];
    [request setHTTPMethod:@"POST"];

    [request setHTTPBody:jsonData];

    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
}

私のウェブサーバー

<?php
    $json = $_POST['json'];
    $person = json_decode($json);    
    $file = fopen('test.txt','w+');
    fwrite($file, $person);
    fclose($file);
?>

サーバーはフォルダーにファイルを正しく作成しますが、ファイルは空です

(サーバーに送信される前の私のjsonファイルは、["a","b","c"]のようなものです)

助けてくれてありがとう:P

4

1 に答える 1

0

iPhoneの開発はわかりませんが、メッセージの本文でJSONデータを送信しているようです。PHP でメッセージの本文を取得するには、次の行を使用する必要があります。

$json = file_get_contents("php://input");

また、iPhone 側の Content-Type ヘッダーを「application/json」に設定します。

これが iPhone でどのように機能するかはわかりませんが、これを覚えておいてください: POST は通常、パラメーターを受け取り、メッセージの本文でそれらを HTTP クエリ文字列形式でエンコードし、"application/x-www-form-urlencoded" を次のように使用します。 iPhone側のソフトウェアがこれを行っていないことを確認してください。

于 2013-01-02T18:10:01.803 に答える