Postman / Insomnia中缺少PUT API体

时间:2018-02-22 10:56:55

标签: php api postman put

我正在使用Postman和Insomnia等应用程序发送API请求。

我可以使用Body作为表单数据发送POST请求,使其看起来像

parameters:[{"fullname" : "John Smith", "username" : "jsmith", "email" : "jsmith@example.com", "password" : "s348nfdf"},{"fullname" : "Janine Smith", "username" : "jsmith1", "email" : "jsmith1@example.com", "password" : "ddfgret567"}]↵

一切正常,我可以从后端的请求中获取参数。

但是,如果我将请求更改为PUT,则主体(上面的参数)不在请求中($ _REQUEST)。请求本身成功,没有错误代码。

我也尝试过x-www-form-urlencoded和raw JSON。

为什么身体(参数)缺失?

1 个答案:

答案 0 :(得分:1)

$_REQUEST[]中没有正文。使用:

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

来自PHP manual entry on I/O streamsdocs:

  

php:// input是一个只读流,允许您读取原始数据   来自请求机构。在POST请求的情况下,它是可取的   使用php://输入而不是$ HTTP_RAW_POST_DATA,因为它没有   依赖于特殊的php.ini指令。而且,对于那些情况   默认情况下不会填充$ HTTP_RAW_POST_DATA,它是潜在的   激活的内存密集程度较低   always_populate_raw_post_data。 php://输入不可用   ENCTYPE = “多部分/格式数据”。