0

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

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

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

我会使用这样的PHP代码:

 $postvalue=$_POST[postfield];

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

4

5 回答 5

2

@netrox

  • 将 application/x-www-urlencoded 用于 REST 服务是完全有效的
  • 您可以读取任何类型的 POST 数据,如下所示:

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

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

$json = json_decode($data);
于 2012-09-12T15:40:08.320 回答
0
file_get_contents('php://input');

这为您提供了客户端发送的原始正文

于 2012-09-12T15:42:01.910 回答
-1

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

于 2012-09-12T15:41:08.650 回答
-2

每个 post 变量都有一个名称。它来自哪里并不重要。如果他们正在发送 XML,则该 XML 数据有一个名称,您可以使用 $_POST 来获取 XML 数据。一旦获得 XML 数据,您就可以使用XML 解析器对其进行解析。

于 2012-09-12T15:39:58.063 回答
-2

你可以试试这个

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

因为你得到了 xml ......我想现在你从 curl 中得到文本并从你那里得到值使用这个

$whatineed = $curlValue->item->something;
于 2012-09-12T15:41:11.863 回答