2012-09-12 73 views
0

我想爲使用PHP的Web服務設置一個小型RESTful接口。問題是,我看着框架,我不知道如何收到沒有字段名稱的發佈數據?對於REST,我如何使用PHP接收發布的數據?

例如,如果服務器發佈數據到我的服務器,我不知道如何得到它,而不需要postfield(POST變量)。傳統上,與形式,人們發送POST數據字段名像這樣:

curl_setopt($ch, CURLOPT_POSTFIELDS, postfield=postvalue); 

,我會使用PHP代碼:

$postvalue=$_POST[postfield]; 

得到postfield的價值,但因爲服務器發佈數據沒有使用postfield,只是發送XML,我怎麼沒有字段?如何捕獲XML?那就是我迷失的地方。

回答

2

@netrox

  • 它是完全有效的使用應用程序/ x-WWW-url編碼爲REST服務
  • 你可以讀任何POST數據是這樣的:

    $data = file_get_contents('php://input'); 
    

如果您的服務接受JSON格式,您可以解碼並使用它:

$json = json_decode($data); 
+0

這就是我正在尋找的答案。 :) 謝謝! – netrox

-2

每個帖子變量都有一個名字。它來自哪裏並不重要。如果他們發送XML,那麼這個XML數據就有一個名字,並且您可以使用$ _POST來獲取XML數據。一旦你得到XML數據,你可以用XML parser解析它。

-1

通常,您可以使用GET或POST將數據傳遞到服務器。根據你的API應該做什麼,你必須選擇一個。但每個條目都應該有一個關鍵,因爲它更容易實施和使用。按照強制的順序傳遞沒有密鑰的數據(讓代碼知道在哪裏)是容易出錯的。

-2

ü可以試試這個

<xml> 
<item> 
<something>value</something> 
</item> 
</xml> 

因爲u'r獲取XML ...我覺得現在來自卷邊u得到的文本,從u使用

$whatineed = $curlValue->item->something; 
0
來獲取值
file_get_contents('php://input'); 

這給了你的客戶發送的原始身體

相關問題