はPHP

2012-03-01 5 views
2
のコンテンツを

枠組みここ http://luracast.com/products/restler/はPHP

は「置くとhttp」を取得できません私は、URLに保存する基幹モデルを使用する場合、それが送信され、更新、 を仕事用として安らかなAPIをrestler使用しています私の「HTTPのPUTの要求メソッドを使用して、JSONなどのデータ、そして私が使用することができ、それはHTTP POSTリクエストメソッドの場合、私はパットたものからの応答...

を取得したい

// to getting content from a POST 
$post_data = json_decode(file_get_contents('php://input'), true); 

私のコンテンツを取得するが、HTTから何も取得できないPは、どのように私は、JSONとしての私のデータを返さない

// can't get anything from a PUT 
function putpatients($id) { 
    $post_data = file_get_contents('php://input'); 
    $post_data = json_decode($post_data, true); 
    echo $post_data['name']; 
} 

空白のブラウザの応答をPUT ???

+0

申し訳ありませんが、質問は何ですか。 * input *は空白ですか? *出力*は空白ですか?クライアント側は空白ですか? – deceze

+3

'php:// input'はストリームです。ストリームを読むと、ストリームが空になります。 既に読んだことがありますか?その場合、2番目の 'file_get_contents( 'php:// input')'は '''を返します。 – Ben

答えて

6

php://inputは、あなたがそれから読めば、それはそれを空にし、ストリームです。

が、そのダウンロードで提供いくつかの例を見て、提出されたデータは自動的にあなたのプット・ハンドラにパラメータとして渡されていることを示すように思われる前に、私はRestlerのcrud example

.. Restlerを使ったことがありません、

function put($id=NULL, $request_data=NULL) { 
    return $this->dp->update($id, $this->_validate($request_data)); 
} 

はので、私はrestlerはすでにphp://inputストリームを読んで、それゆえ、それを空にしていることを推測している:著者クラスは、このようなPUT要求を持っています。

ので、あなたのプット・ハンドラは、多分もっと彼らの例のようにする必要があります:

function putpatients($id, $request_data = NULL) { 
    /* do something with the $request_data */ 
    var_dump($request_data); 
} 

編集:PHPから2回読んだ理由を語る@decezeからprevious SO questionが実際にあります://入力が」doesnのあなたのコードがなぜPOSTリクエストで動作したのかを説明しています。いずれにしても、残りの車輪を再発明するのではなく、Restlerが提供する施設を実際に使用する必要があります。

+0

私は私の家に到着したときに私はよく試みます... – crapthings

+0

ああ私の神それは働いている...私はこの関数を使用していましたfunction putpatients($ id、$ data = NULL){ /* $ request_data */ で何かをしますvar_dump($ data); }しかし、何も返しません。それはすべてparam名です。わかった。 – crapthings

+0

@crainingings。うーん、私はパラメータの実際の名前は何かを変更する必要はないと思う、別の問題かもしれない。しかし、ねえ、もしそれが壊れていなければ.. – Ben

0

あなたが選んだ開発ツール(火薬瓶など)は反応を示していますか?

エコーの代わりにecho json_encode($post_data['name']);を入力すると役立つ可能性があります。

+0

chrome私はvar_dump(file_get_contents( 'php:// input'))を使用しました。その後、私は何を取得することは、文字列(0)「」 – crapthings

0

は、変数の例の値を表示するためにしますprint_r()関数を使用しよう:私はあなたの質問にコメントしたよう

print_r($post_data); 
+0

空白の変数の内容ですか!どうしましたか ?私はHTTP PUT REQUEST_METHODを作ると確信していますが、私はputtedしたものを返すことはできません。 – crapthings