0

コマンドライン(Ubuntu)からPOSTリクエストを送信しています:

echo -n '{"prop":"value"}' | POST -c -U "application/json" http://site.com/test

サーバースクリプトはその$_POSTを出力します。

<?php 
  var_dump ($_POST);
?>

私は出力で見る:Content-Length: 16、しかしサーバーの応答で私は得る

array(0){
}

どこを間違えたの?

4

1 に答える 1

3

$_POST通常の形式のデータとして送信されたデータのキーと値のペアが含まれます。JSONデータを送信したため、同じように解析されません。

リクエスト本文を取得する必要があります。を使用して、本文をファイルとして使用http_get_request_body()または処理できますfopen('php://input')。リクエスト本文を読んだら、json_decode()それを解析するために使用できます。

$x = json_decode(http_get_request_body());

見る:

于 2012-11-05T17:25:14.177 に答える