2011-06-22 27 views
1

まあタイトルは私が推測する通りです。POSTリクエストでリクエストボディからすべての「コンテンツ」を取得するにはどうすればよいですか?

私はprint_r($_SERVER)にしようとしましたが、私が作成した「投稿依頼」は私がフィドラーで作成したものではありません。

私は今、約1時間を試した後、私の心のうちは本当にです:S

は、私が実際に欲しいのはリクエストボディにJSONとPOSTリクエストを送信することです。次に私はjson_decode(request-body);にしたいと思います。私はこの変数を使って返信することができます。だから私は、URLに

編集私の変数を配置する必要がありません。

これを私のPOST

$url = 'http.........jsonAPI/jsonTestAPI.php'; 
$post = array("token" => "923874657382934857y32893475y43829ufhgjdkfn"); 
$jsonpost = json_encode($post); 

$ch = curl_init($url); 

curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonpost); 

$response = curl_exec($ch); 

curl_close($ch); 
+1

コードの内容を表示してください... – Drewdin

+0

最初のポートは常にphpinfo()です。あなたのPHPスクリプトで何が利用可能であるかを見るために...あなたは$ _REQUESTか$ _POSTが有効であれば$ _POSTを表示します... – sdolgy

+0

私が確立する必要があるのは、モバイルアプリとサービスの間の通信です。 JSON APIサービス。返すことができるいくつかのフィードキーを持つ配列を受け取る必要があります。しかし、単にURLに配列を入れることはできないので、私はJSON POSTリクエストについて考えました。 – Highmastdon

答えて

7

file_get_contents('php://input');またはPHPグローバル$HTTP_RAW_POST_DATAを試してみてくださいされています。

+1

なぜこれが正確に正しいことであると考えられるのか分かりません。 – pilif

+0

ありがとう:) file_get_contents( 'php:// input');私は必要なものです。 – Highmastdon

+0

これは、PUTなどのコンテンツ本体を持つ他のHTTPメソッドでも機能します。 'maxlen'パラメータで許可されたコンテンツ本体の最大サイズを設定することもお勧めします。 'file_get_contents( 'php:// input'、null、null、0、0x1000)'です。 –

0

これを行う最も簡単な方法は、あなたのjsonを隠し入力フィールドに置き、POSTを使用してフォームを送信することです。

関連する問題