对于REST,如何使用PHP接收发布的数据?

时间:2012-09-12 15:36:46

标签: php rest

我想使用PHP为我的Web服务设置一个小的RESTful接口。问题是我查看了框架,我无法弄清楚如何在没有字段名称的情况下收到发布的数据?

例如,如果服务器将数据发布到我的服务器,我无法弄清楚如何在不需要postfield(POST变量)的情况下获取数据。传统上,对于表单,人们使用以下字段名称发送帖子数据:

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

我将使用这样的PHP代码:

 $postvalue=$_POST[postfield];

获取postfield的价值,但由于服务器发布数据不是使用postfield而只是发送XML,如何在没有字段的情况下获取它?我如何捕获XML?那就是我迷失的地方。

5 个答案:

答案 0 :(得分:2)

@netrox

  • 使用application / x-www-urlencoded进行REST服务是完全有效的
  • 您可以阅读任何类型的POST数据:

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

如果您的服务接受JSON格式,您可以解码并使用它:

$json = json_decode($data);

答案 1 :(得分:0)

file_get_contents('php://input');

它为您提供客户端发送的原始主体

答案 2 :(得分:-1)

通常,您使用GET或POST将数据传递到服务器。根据您的API应该做什么,您必须选择一个。但是每个条目都应该有一个密钥,因为它更容易实现和使用。按顺序传递没有密钥的数据(以保持代码知道在哪里)容易出错。

答案 3 :(得分:-2)

每个帖子变量都有一个名字。它来自哪里并不重要。如果他们发送XML,那么XML数据有一个名称,您可以使用$ _POST来获取XML数据。获得XML数据后,您可以使用XML parser解析它。

答案 4 :(得分:-2)

你可以尝试这个

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

因为你得到了xml ...我想现在从卷曲你得到文本并从你那里得到价值

$whatineed = $curlValue->item->something;